08:08:06.171 [debug] QUERY OK source="media_items" db=2.7ms idle=5.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 09:20:42Z], 43] 08:08:06.172 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "5c8c1091-72ff-4fbd-83e5-089732ea6be7", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, false, false, 43, [], 97, ~U[2026-04-16 09:20:42Z], ~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, 43, ~U[2026-04-16 09:20:42Z]] 08:08:06.173 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 08:08:06.176 [debug] QUERY OK source="media_items" db=2.8ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 08:36:46Z], 43] 08:08:06.177 [debug] QUERY OK source="media_items" db=0.8ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "3be46b41-186a-4b81-89c7-86b49a288921", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, false, false, 43, [], 98, ~U[2026-04-15 08:36:46Z], ~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, 43, ~U[2026-04-15 08:36:46Z]] 08:08:06.177 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 08:08:06.180 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 09:21:30Z], 43] 08:08:06.181 [debug] QUERY OK source="media_items" db=0.7ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "afb159d6-706c-482e-98f5-57a592d0ccd1", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, false, false, 43, [], 98, ~U[2026-04-14 09:21:30Z], ~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, 43, ~U[2026-04-14 09:21:30Z]] 08:08:06.182 [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" = ?) [43] 08:08:06.185 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 08:37:42Z], 43] 08:08:06.186 [debug] QUERY OK source="media_items" db=0.7ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "969dc7f0-135e-4256-90c0-676f4c8072e2", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, false, false, 43, [], 97, ~U[2026-04-13 08:37:42Z], ~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, 43, ~U[2026-04-13 08:37:42Z]] 08:08:06.186 [debug] QUERY OK source="sources" db=0.5ms idle=5.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z], 43] 08:08:06.191 [debug] QUERY OK source="media_items" db=4.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 INNER JOIN "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")))) [43] 08:08:06.330 [debug] QUERY OK source="media_items" db=3.3ms idle=1.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")))) [43] 08:08:06.330 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 08:08:06.331 [debug] QUERY OK source="tasks" db=0.2ms idle=4.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300565, 43, ~U[2026-04-30 13:08:06Z], ~U[2026-04-30 13:08:06Z]] 08:08:06.332 [info] {"args":{"id":43},"id":300480,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":25235893,"event":"job:stop","queue_time":237239,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:08:35.783 [info] {"source":"oban","duration":3465,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:00.780 [info] {"source":"oban","duration":154,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:09:05.787 [info] {"source":"oban","duration":3680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:35.790 [info] {"source":"oban","duration":2517,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:00.781 [info] {"source":"oban","duration":138,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:10:05.794 [info] {"source":"oban","duration":2844,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:06.262 [info] {"args":{"id":37},"id":300481,"meta":{},"system_time":1777554606262863878,"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"]} 08:10:06.263 [debug] QUERY OK source="sources" db=0.1ms idle=75.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" = ?) [37] 08:10:06.263 [debug] QUERY OK source="settings" db=0.1ms idle=75.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:10:06.265 [debug] QUERY OK source="media_items" db=2.3ms idle=76.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")))) [37] 08:10:06.269 [debug] QUERY OK source="media_items" db=3.6ms idle=9.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 08:10:06.269 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:10:06.270 [debug] QUERY OK source="settings" db=0.0ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:10:06.270 [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 [] 08:10:06.273 [debug] QUERY OK source="media_items" db=2.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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [37] 08:10:06.274 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:10:06.274 [debug] Current batch of media processed. Will check again in 1000ms 08:10:06.274 [debug] QUERY OK source="settings" db=0.0ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:10:06.274 [debug] QUERY OK source="settings" db=0.0ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:10:06.274 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:10:06.275 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/2f/56/2f562ca2614d9150c2d2c0f72b361469adad566ab8369971675ea14122f3b569.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/36/1e/361e9263c7ee5b1d7e0b82e12e5563ea64f6a28a791d6a1c46753c94c334e3a6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:10:07.274 [debug] Current batch of media processed. Will check again in 1000ms 08:10:08.276 [debug] Current batch of media processed. Will check again in 1000ms 08:10:09.277 [debug] Current batch of media processed. Will check again in 1000ms 08:10:10.278 [debug] Current batch of media processed. Will check again in 1000ms 08:10:11.279 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "duration" => 629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", "id" => "b13m-iuu4XU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b13m-iuu4XU", "playlist_index" => 1, "timestamp" => 1777381269, "title" => "Github are you joking?", "upload_date" => "20260428"} 08:10:11.280 [debug] QUERY OK source="sources" db=0.2ms idle=1092.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 (?)) [37] 08:10:11.280 [debug] QUERY OK source="sources" db=0.0ms idle=1093.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" = ?) [37] 08:10:11.282 [debug] QUERY OK source="media_items" db=2.2ms idle=1093.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 08:10:11.285 [debug] QUERY OK source="media_items" db=2.1ms idle=1022.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "e6d72f6f-839a-4f38-948f-8d207ffa0194", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 13:10:11Z], ~U[2026-04-30 13:10:11Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 08:10:11.285 [debug] QUERY OK source="sources" db=0.2ms idle=23.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" = ?) [37] 08:10:11.285 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:10:11.286 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2827057] 08:10:11.286 [debug] Current batch of media processed. Will check again in 1000ms 08:10:12.287 [debug] Current batch of media processed. Will check again in 1000ms 08:10:13.288 [debug] Current batch of media processed. Will check again in 1000ms 08:10:14.289 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "duration" => 543, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", "id" => "ZANFhJ9HYsM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "playlist_index" => 2, "timestamp" => 1777032065, "title" => "RollerCoaster Tycoon Optimizations are Insane", "upload_date" => "20260424"} 08:10:14.289 [debug] QUERY OK source="sources" db=0.3ms idle=1102.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 (?)) [37] 08:10:14.290 [debug] QUERY OK source="sources" db=0.1ms idle=1102.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" = ?) [37] 08:10:14.292 [debug] QUERY OK source="media_items" db=2.5ms idle=1103.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 08:10:14.294 [debug] QUERY OK source="media_items" db=0.8ms idle=1028.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "72d370ed-3630-4dd1-927a-76c64265e411", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 13:10:14Z], ~U[2026-04-30 13:10:14Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 08:10:14.294 [debug] QUERY OK source="sources" db=0.4ms idle=28.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" = ?) [37] 08:10:14.294 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 08:10:14.295 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2795669] 08:10:14.295 [debug] Current batch of media processed. Will check again in 1000ms 08:10:15.296 [debug] Current batch of media processed. Will check again in 1000ms 08:10:16.297 [debug] Current batch of media processed. Will check again in 1000ms 08:10:17.298 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "duration" => 586, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", "id" => "rAREqdtUN48", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rAREqdtUN48", "playlist_index" => 3, "timestamp" => 1776799997, "title" => "We are near peak hype", "upload_date" => "20260421"} 08:10:17.298 [debug] QUERY OK source="sources" db=0.3ms idle=1111.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 (?)) [37] 08:10:17.299 [debug] QUERY OK source="sources" db=0.1ms idle=1111.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" = ?) [37] 08:10:17.302 [debug] QUERY OK source="media_items" db=3.0ms idle=1112.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 08:10:17.304 [debug] QUERY OK source="media_items" db=1.3ms idle=1032.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "3f67c078-fa31-4f45-b246-874cb0bbe3ff", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 13:10:17Z], ~U[2026-04-30 13:10:17Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 08:10:17.304 [debug] QUERY OK source="sources" db=0.2ms idle=33.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" = ?) [37] 08:10:17.304 [debug] QUERY OK source="media_profiles" db=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] 08:10:17.305 [debug] QUERY OK source="media_items" db=0.2ms 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 [2778175] 08:10:17.305 [debug] Current batch of media processed. Will check again in 1000ms 08:10:18.306 [debug] Current batch of media processed. Will check again in 1000ms 08:10:19.307 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2786, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", "id" => "6szQxMGX5JI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6szQxMGX5JI", "playlist_index" => 4, "timestamp" => 1776603620, "title" => "The Mythos Situation | TheStandup", "upload_date" => "20260419"} 08:10:19.307 [debug] QUERY OK source="sources" db=0.1ms idle=120.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 (?)) [37] 08:10:19.308 [debug] QUERY OK source="sources" db=0.1ms idle=120.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" = ?) [37] 08:10:19.310 [debug] QUERY OK source="media_items" db=2.2ms idle=121.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 08:10:19.311 [debug] QUERY OK source="media_items" db=1.0ms idle=123.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "c30394da-5bfb-4cae-85c8-de1dc9a172b0", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 13:10:19Z], ~U[2026-04-30 13:10:19Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 08:10:19.312 [debug] QUERY OK source="sources" db=0.2ms idle=38.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" = ?) [37] 08:10:19.312 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:19.313 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2760601] 08:10:19.313 [debug] Current batch of media processed. Will check again in 1000ms 08:10:20.314 [debug] Current batch of media processed. Will check again in 1000ms 08:10:21.315 [debug] Current batch of media processed. Will check again in 1000ms 08:10:22.316 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 736, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", "id" => "Oq5e_8zvick", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Oq5e_8zvick", "playlist_index" => 5, "timestamp" => 1776428220, "title" => "It's all fake", "upload_date" => "20260417"} 08:10:22.316 [debug] QUERY OK source="sources" db=0.1ms idle=1129.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 (?)) [37] 08:10:22.317 [debug] QUERY OK source="sources" db=0.1ms idle=1129.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" = ?) [37] 08:10:22.319 [debug] QUERY OK source="media_items" db=2.1ms idle=1130.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 08:10:22.320 [debug] QUERY OK source="media_items" db=0.9ms idle=1043.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "63bfffee-5bc5-4c35-a116-c051287c2563", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 13:10:22Z], ~U[2026-04-30 13:10:22Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 08:10:22.320 [debug] QUERY OK source="sources" db=0.1ms idle=43.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" = ?) [37] 08:10:22.321 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:10:22.321 [debug] QUERY OK source="media_items" db=0.1ms 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 [2744497] 08:10:22.321 [debug] Current batch of media processed. Will check again in 1000ms 08:10:23.322 [debug] Current batch of media processed. Will check again in 1000ms 08:10:24.323 [debug] Current batch of media processed. Will check again in 1000ms 08:10:25.324 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 785, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", "id" => "c6yN06GKRNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c6yN06GKRNQ", "playlist_index" => 6, "timestamp" => 1776255366, "title" => "Linus Lays down the Law", "upload_date" => "20260415"} 08:10:25.324 [debug] QUERY OK source="sources" db=0.1ms idle=1137.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 (?)) [37] 08:10:25.324 [debug] QUERY OK source="sources" db=0.1ms idle=1137.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" = ?) [37] 08:10:25.327 [debug] QUERY OK source="media_items" db=2.4ms idle=1137.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 08:10:25.328 [debug] QUERY OK source="media_items" db=0.7ms idle=1047.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c5a4048e-5920-4e5f-9897-cc3dae980ce7", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 13:10:25Z], ~U[2026-04-30 13:10:25Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 08:10:25.328 [debug] QUERY OK source="sources" db=0.1ms idle=48.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" = ?) [37] 08:10:25.329 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:10:25.329 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2735456] 08:10:25.329 [debug] Current batch of media processed. Will check again in 1000ms 08:10:26.330 [debug] Current batch of media processed. Will check again in 1000ms 08:10:27.331 [debug] Current batch of media processed. Will check again in 1000ms 08:10:28.332 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 611, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", "id" => "zMpn9ICagdE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zMpn9ICagdE", "playlist_index" => 7, "timestamp" => 1776083174, "title" => "Vim Has A 0-Day????", "upload_date" => "20260413"} 08:10:28.332 [debug] QUERY OK source="sources" db=0.2ms idle=1145.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 (?)) [37] 08:10:28.333 [debug] QUERY OK source="sources" db=0.3ms idle=1145.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" = ?) [37] 08:10:28.335 [debug] QUERY OK source="media_items" db=2.3ms idle=1146.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 08:10:28.336 [debug] QUERY OK source="media_items" db=0.8ms idle=1052.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "c36b6278-91b4-437a-b422-af398d97e35e", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 13:10:28Z], ~U[2026-04-30 13:10:28Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 08:10:28.337 [debug] QUERY OK source="sources" db=0.2ms idle=52.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" = ?) [37] 08:10:28.337 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 08:10:28.338 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2719999] 08:10:28.338 [debug] Current batch of media processed. Will check again in 1000ms 08:10:29.339 [debug] Current batch of media processed. Will check again in 1000ms 08:10:30.340 [debug] Current batch of media processed. Will check again in 1000ms 08:10:31.341 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2441, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", "id" => "CCBe1shjGOw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CCBe1shjGOw", "playlist_index" => 8, "timestamp" => 1775998816, "title" => "Trash Made a Black Mirror App | The Standup", "upload_date" => "20260412"} 08:10:31.341 [debug] QUERY OK source="sources" db=0.2ms idle=1154.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 (?)) [37] 08:10:31.341 [debug] QUERY OK source="sources" db=0.1ms idle=1154.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" = ?) [37] 08:10:31.344 [debug] QUERY OK source="media_items" db=2.3ms idle=1154.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 08:10:31.346 [debug] QUERY OK source="media_items" db=1.2ms idle=1057.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "b454a9c8-b4d8-4000-80f0-22b7df14c03f", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 13:10:31Z], ~U[2026-04-30 13:10:31Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 08:10:31.346 [debug] QUERY OK source="sources" db=0.2ms idle=58.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" = ?) [37] 08:10:31.346 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:31.347 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2712431] 08:10:31.347 [debug] Current batch of media processed. Will check again in 1000ms 08:10:32.347 [debug] Current batch of media processed. Will check again in 1000ms 08:10:33.349 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 199, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", "id" => "alK8hgHgxd4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=alK8hgHgxd4", "playlist_index" => 9, "timestamp" => 1775921010, "title" => "I made a music video and I'm not sorry", "upload_date" => "20260411"} 08:10:33.349 [debug] QUERY OK source="sources" db=0.1ms idle=162.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 (?)) [37] 08:10:33.349 [debug] QUERY OK source="sources" db=0.1ms idle=162.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" = ?) [37] 08:10:33.352 [debug] QUERY OK source="media_items" db=2.3ms idle=163.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 08:10:33.353 [debug] QUERY OK source="media_items" db=0.9ms idle=165.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "576d3685-7ec8-4488-96dc-0389eeff7711", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 13:10:33Z], ~U[2026-04-30 13:10:33Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 08:10:33.354 [debug] QUERY OK source="sources" db=0.1ms idle=63.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" = ?) [37] 08:10:33.354 [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] 08:10:33.354 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2705803] 08:10:33.354 [debug] Current batch of media processed. Will check again in 1000ms 08:10:34.355 [debug] Current batch of media processed. Will check again in 1000ms 08:10:35.356 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 418, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", "id" => "L29q2LRiMRc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L29q2LRiMRc", "playlist_index" => 10, "timestamp" => 1775837734, "title" => "No way this actually works", "upload_date" => "20260410"} 08:10:35.356 [debug] QUERY OK source="sources" db=0.1ms idle=169.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 (?)) [37] 08:10:35.356 [debug] QUERY OK source="sources" db=0.1ms idle=169.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" = ?) [37] 08:10:35.359 [debug] QUERY OK source="media_items" db=2.3ms idle=169.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 08:10:35.360 [debug] QUERY OK source="media_items" db=0.7ms idle=172.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "c84b4eaf-23c2-486f-bca3-2f1d0423742a", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 13:10:35Z], ~U[2026-04-30 13:10:35Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 08:10:35.360 [debug] QUERY OK source="sources" db=0.1ms idle=67.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" = ?) [37] 08:10:35.360 [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] 08:10:35.361 [debug] QUERY OK source="media_items" db=0.1ms 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 [2697826] 08:10:35.361 [debug] Current batch of media processed. Will check again in 1000ms 08:10:35.799 [info] {"source":"oban","duration":4566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:36.362 [debug] Current batch of media processed. Will check again in 1000ms 08:10:37.363 [debug] Current batch of media processed. Will check again in 1000ms 08:10:38.364 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 626, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", "id" => "XRgGFQ0EgM0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "playlist_index" => 11, "timestamp" => 1775622398, "title" => "Is Mythos too Dangerous?", "upload_date" => "20260408"} 08:10:38.364 [debug] QUERY OK source="sources" db=0.1ms idle=1176.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 (?)) [37] 08:10:38.364 [debug] QUERY OK source="sources" db=0.1ms idle=1176.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" = ?) [37] 08:10:38.367 [debug] QUERY OK source="media_items" db=2.2ms idle=1177.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 08:10:38.368 [debug] QUERY OK source="media_items" db=0.8ms idle=1072.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "40c3b495-23ee-4246-bbf2-641194e6c5b1", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 13:10:38Z], ~U[2026-04-30 13:10:38Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 08:10:38.368 [debug] QUERY OK source="sources" db=0.1ms idle=72.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" = ?) [37] 08:10:38.368 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:38.369 [debug] QUERY OK source="media_items" db=0.1ms 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 [2677584] 08:10:38.369 [debug] Current batch of media processed. Will check again in 1000ms 08:10:39.370 [debug] Current batch of media processed. Will check again in 1000ms 08:10:40.371 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 456, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", "id" => "zOh645QHcRY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zOh645QHcRY", "playlist_index" => 12, "timestamp" => 1775563322, "title" => "Axios just got f**ked", "upload_date" => "20260407"} 08:10:40.371 [debug] QUERY OK source="sources" db=0.1ms idle=184.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 (?)) [37] 08:10:40.371 [debug] QUERY OK source="sources" db=0.0ms idle=184.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" = ?) [37] 08:10:40.374 [debug] QUERY OK source="media_items" db=2.2ms idle=184.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 08:10:40.375 [debug] QUERY OK source="media_items" db=0.8ms idle=187.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "137d1287-0294-4ff3-9648-3d967854ce39", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 13:10:40Z], ~U[2026-04-30 13:10:40Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 08:10:40.375 [debug] QUERY OK source="sources" db=0.1ms idle=75.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" = ?) [37] 08:10:40.376 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 08:10:40.376 [debug] QUERY OK source="media_items" db=0.1ms 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 [2668267] 08:10:40.376 [debug] Current batch of media processed. Will check again in 1000ms 08:10:41.377 [debug] Current batch of media processed. Will check again in 1000ms 08:10:42.378 [debug] Current batch of media processed. Will check again in 1000ms 08:10:43.379 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2644, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", "id" => "1o74a8a0rBw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1o74a8a0rBw", "playlist_index" => 13, "timestamp" => 1775307604, "title" => "Maintaining a codebase with AI | The Standup", "upload_date" => "20260404"} 08:10:43.379 [debug] QUERY OK source="sources" db=0.2ms idle=1192.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 (?)) [37] 08:10:43.380 [debug] QUERY OK source="sources" db=0.2ms idle=1192.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" = ?) [37] 08:10:43.382 [debug] QUERY OK source="media_items" db=2.2ms idle=1193.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 08:10:43.384 [debug] QUERY OK source="media_items" db=1.0ms idle=1081.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "685eced2-b388-492a-9030-ae7b49756506", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 13:10:43Z], ~U[2026-04-30 13:10:43Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 08:10:43.384 [debug] QUERY OK source="sources" db=0.1ms idle=81.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" = ?) [37] 08:10:43.384 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:43.385 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2647041] 08:10:43.385 [debug] Current batch of media processed. Will check again in 1000ms 08:10:44.386 [debug] Current batch of media processed. Will check again in 1000ms 08:10:45.387 [debug] Current batch of media processed. Will check again in 1000ms 08:10:46.388 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 435, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", "id" => "UwJp5xm1MNc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UwJp5xm1MNc", "playlist_index" => 14, "timestamp" => 1775217647, "title" => "Github has gone too far", "upload_date" => "20260403"} 08:10:46.388 [debug] QUERY OK source="sources" db=0.2ms idle=1201.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 (?)) [37] 08:10:46.388 [debug] QUERY OK source="sources" db=0.1ms idle=1201.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" = ?) [37] 08:10:46.391 [debug] QUERY OK source="media_items" db=2.3ms idle=1201.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 08:10:46.392 [debug] QUERY OK source="media_items" db=0.7ms idle=1085.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "1b44ee64-17a7-4bca-bbf2-38895766461c", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 13:10:46Z], ~U[2026-04-30 13:10:46Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 08:10:46.392 [debug] QUERY OK source="sources" db=0.1ms idle=84.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" = ?) [37] 08:10:46.393 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:46.393 [debug] QUERY OK source="media_items" db=0.1ms 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 [2634305] 08:10:46.393 [debug] Current batch of media processed. Will check again in 1000ms 08:10:47.394 [debug] Current batch of media processed. Will check again in 1000ms 08:10:48.394 [debug] Current batch of media processed. Will check again in 1000ms 08:10:49.396 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 719, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", "id" => "GdgRpiQRsis", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GdgRpiQRsis", "playlist_index" => 15, "timestamp" => 1775013611, "title" => "Claude Code got leaked", "upload_date" => "20260401"} 08:10:49.396 [debug] QUERY OK source="sources" db=0.2ms idle=1209.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 (?)) [37] 08:10:49.397 [debug] QUERY OK source="sources" db=0.1ms idle=1209.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" = ?) [37] 08:10:49.399 [debug] QUERY OK source="media_items" db=2.4ms idle=1210.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 08:10:49.401 [debug] QUERY OK source="media_items" db=1.0ms idle=1089.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "53c0bd47-ceb7-4a0a-90e9-93fbf9123a9b", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 13:10:49Z], ~U[2026-04-30 13:10:49Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 08:10:49.401 [debug] QUERY OK source="sources" db=0.1ms idle=89.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" = ?) [37] 08:10:49.401 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:49.402 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2621036] 08:10:49.402 [debug] Current batch of media processed. Will check again in 1000ms 08:10:50.403 [debug] Current batch of media processed. Will check again in 1000ms 08:10:51.404 [debug] Current batch of media processed. Will check again in 1000ms 08:10:52.405 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 578, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", "id" => "ceH0IT-OBCw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ceH0IT-OBCw", "playlist_index" => 16, "timestamp" => 1774958441, "title" => "The End of JS", "upload_date" => "20260331"} 08:10:52.405 [debug] QUERY OK source="sources" db=0.1ms idle=1218.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 (?)) [37] 08:10:52.405 [debug] QUERY OK source="sources" db=0.1ms idle=1218.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" = ?) [37] 08:10:52.408 [debug] QUERY OK source="media_items" db=2.2ms idle=1218.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 08:10:52.409 [debug] QUERY OK source="media_items" db=0.7ms idle=1093.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "6f0c3155-ba73-4a7e-86fa-1543440d2bf2", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 13:10:52Z], ~U[2026-04-30 13:10:52Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 08:10:52.409 [debug] QUERY OK source="sources" db=0.1ms idle=93.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" = ?) [37] 08:10:52.409 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:10:52.409 [debug] QUERY OK source="media_items" db=0.1ms 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 [2613530] 08:10:52.410 [debug] Current batch of media processed. Will check again in 1000ms 08:10:53.411 [debug] Current batch of media processed. Will check again in 1000ms 08:10:54.412 [debug] Current batch of media processed. Will check again in 1000ms 08:10:55.413 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 685, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", "id" => "DAHZJAoZ3OM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "playlist_index" => 17, "timestamp" => 1774872076, "title" => "Invite to the Slop Party", "upload_date" => "20260330"} 08:10:55.413 [debug] QUERY OK source="sources" db=0.2ms idle=1226.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 (?)) [37] 08:10:55.414 [debug] QUERY OK source="sources" db=0.2ms idle=1227.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" = ?) [37] 08:10:55.416 [debug] QUERY OK source="media_items" db=2.2ms idle=1227.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 08:10:55.419 [debug] QUERY OK source="media_items" db=2.5ms idle=1099.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "8fefc61a-3dd8-45f5-8afc-df7a08dcfa1a", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 13:10:55Z], ~U[2026-04-30 13:10:55Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 08:10:55.420 [debug] QUERY OK source="sources" db=0.1ms idle=100.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" = ?) [37] 08:10:55.420 [debug] QUERY OK source="media_profiles" db=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] 08:10:55.420 [debug] QUERY OK source="media_items" db=0.1ms 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 [2605590] 08:10:55.420 [debug] Current batch of media processed. Will check again in 1000ms 08:10:56.421 [debug] Current batch of media processed. Will check again in 1000ms 08:10:57.422 [debug] Current batch of media processed. Will check again in 1000ms 08:10:58.423 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 491, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", "id" => "KPtIx5ZFSOY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "playlist_index" => 18, "timestamp" => 1774612826, "title" => "The Copilot Problem", "upload_date" => "20260327"} 08:10:58.423 [debug] QUERY OK source="sources" db=0.2ms idle=1236.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 (?)) [37] 08:10:58.423 [debug] QUERY OK source="sources" db=0.1ms idle=1236.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" = ?) [37] 08:10:58.426 [debug] QUERY OK source="media_items" db=2.3ms idle=1237.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 08:10:58.427 [debug] QUERY OK source="media_items" db=0.8ms idle=1104.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "108d4957-9afc-4c3f-aa48-b42eebaf36ea", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 13:10:58Z], ~U[2026-04-30 13:10:58Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 08:10:58.427 [debug] QUERY OK source="sources" db=0.1ms idle=104.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" = ?) [37] 08:10:58.428 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:10:58.428 [debug] QUERY OK source="media_items" db=0.1ms 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 [2579932] 08:10:58.428 [debug] Current batch of media processed. Will check again in 1000ms 08:10:59.429 [debug] Current batch of media processed. Will check again in 1000ms 08:11:00.430 [debug] Current batch of media processed. Will check again in 1000ms 08:11:00.782 [info] {"source":"oban","duration":201,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:11:01.431 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 518, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", "id" => "mx3g7XoPVNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "playlist_index" => 19, "timestamp" => 1774526481, "title" => "A bad day to use python", "upload_date" => "20260326"} 08:11:01.431 [debug] QUERY OK source="sources" db=0.2ms idle=1244.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 (?)) [37] 08:11:01.431 [debug] QUERY OK source="sources" db=0.1ms idle=1244.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" = ?) [37] 08:11:01.434 [debug] QUERY OK source="media_items" db=2.3ms idle=1105.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 08:11:01.435 [debug] QUERY OK source="media_items" db=0.8ms idle=651.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "70321f6b-ea97-4762-ac8a-92f352a0d47c", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 13:11:01Z], ~U[2026-04-30 13:11:01Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 08:11:01.435 [debug] QUERY OK source="sources" db=0.1ms idle=107.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" = ?) [37] 08:11:01.436 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:11:01.436 [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 [2575352] 08:11:01.436 [debug] Current batch of media processed. Will check again in 1000ms 08:11:02.437 [debug] Current batch of media processed. Will check again in 1000ms 08:11:03.438 [debug] Current batch of media processed. Will check again in 1000ms 08:11:03.627 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/2f/56/2f562ca2614d9150c2d2c0f72b361469adad566ab8369971675ea14122f3b569.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/36/1e/361e9263c7ee5b1d7e0b82e12e5563ea64f6a28a791d6a1c46753c94c334e3a6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 08:11:03.628 [debug] Gracefully stopping file follower 08:11:03.628 [debug] QUERY OK source="sources" db=0.1ms idle=441.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 (?)) [37] 08:11:03.628 [debug] QUERY OK source="sources" db=0.0ms idle=441.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" = ?) [37] 08:11:03.631 [debug] QUERY OK source="media_items" db=2.2ms idle=441.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 08:11:03.632 [debug] QUERY OK source="media_items" db=0.7ms idle=444.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "5006e6b6-60ad-4f0f-930a-b43975b6e311", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 08:11:03.632 [debug] QUERY OK source="sources" db=0.1ms idle=300.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" = ?) [37] 08:11:03.634 [debug] QUERY OK source="media_items" db=2.1ms idle=4.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 08:11:03.635 [debug] QUERY OK source="media_items" db=0.7ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "23724750-4b11-44c9-84e9-2f87a1bac243", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 08:11:03.636 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.638 [debug] QUERY OK source="media_items" db=2.0ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 08:11:03.639 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "8b78d090-d86d-4b77-9ab3-43e80a29c383", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 08:11:03.640 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.642 [debug] QUERY OK source="media_items" db=2.0ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 08:11:03.643 [debug] QUERY OK source="media_items" db=1.1ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "df67738e-b823-44c2-961a-3a70ad8c3ffb", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 08:11:03.644 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.646 [debug] QUERY OK source="media_items" db=2.0ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 08:11:03.647 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "a50e95e0-3660-4d7e-8d2a-736bed1412bf", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 08:11:03.648 [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" = ?) [37] 08:11:03.650 [debug] QUERY OK source="media_items" db=2.0ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 08:11:03.651 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "e1e62830-a631-4322-b30f-2e5e75925f7e", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 08:11:03.651 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.653 [debug] QUERY OK source="media_items" db=2.0ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 08:11:03.654 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "c6a7f60c-454c-46df-8846-5a6d866dd05f", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 08:11:03.655 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.657 [debug] QUERY OK source="media_items" db=2.1ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 08:11:03.678 [debug] QUERY OK source="media_items" db=20.5ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "dca69d67-8732-40fd-a320-b3ae783a13ab", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 08:11:03.679 [debug] QUERY OK source="sources" db=0.5ms idle=25.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" = ?) [37] 08:11:03.681 [debug] QUERY OK source="media_items" db=2.1ms idle=24.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 08:11:03.686 [debug] QUERY OK source="media_items" db=4.6ms idle=26.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "2e8838c2-fb8c-4261-a57d-7db0df6fe896", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 08:11:03.687 [debug] QUERY OK source="sources" db=0.4ms idle=29.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" = ?) [37] 08:11:03.689 [debug] QUERY OK source="media_items" db=2.1ms idle=9.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 08:11:03.690 [debug] QUERY OK source="media_items" db=0.6ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "a0bf029a-e306-4310-9d71-f88e43ec9915", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 08:11:03.691 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.693 [debug] QUERY OK source="media_items" db=2.0ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 08:11:03.694 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "babaa76e-9831-41fc-bafd-af5afb0f9f54", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 08:11:03.695 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.697 [debug] QUERY OK source="media_items" db=2.0ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 08:11:03.698 [debug] QUERY OK source="media_items" db=0.6ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "c5d987f1-5ab6-4ddf-bb28-8ad5b7258692", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 08:11:03.698 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.700 [debug] QUERY OK source="media_items" db=2.0ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 08:11:03.702 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "530ce559-c6fc-4958-a5d7-dbff09fb0f36", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 08:11:03.702 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.705 [debug] QUERY OK source="media_items" db=2.2ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 08:11:03.706 [debug] QUERY OK source="media_items" db=0.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "a0ccbe05-827d-4aa2-9f94-6deff4a6d495", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 08:11:03.706 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.708 [debug] QUERY OK source="media_items" db=2.0ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 08:11:03.710 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "f700dee5-1fd8-4eb3-b22b-4d86a338035f", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 08:11:03.710 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.712 [debug] QUERY OK source="media_items" db=2.0ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 08:11:03.713 [debug] QUERY OK source="media_items" db=0.6ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "6a12a71d-48c1-4c23-872c-278df1c80572", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 08:11:03.714 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.716 [debug] QUERY OK source="media_items" db=2.0ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 08:11:03.717 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "fb4090b8-112a-46f8-8830-334049310da4", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 08:11:03.717 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.720 [debug] QUERY OK source="media_items" db=2.1ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 08:11:03.721 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "c08c0114-8cbe-46e7-9e37-5c0f82b4a592", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 08:11:03.721 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.724 [debug] QUERY OK source="media_items" db=2.1ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 08:11:03.725 [debug] QUERY OK source="media_items" db=0.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "63f87582-1204-4bff-bc18-880293ccbde7", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 08:11:03.725 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 08:11:03.727 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 12:15:57Z], 37] 08:11:03.728 [debug] QUERY OK source="media_items" db=0.6ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "c7aac90e-54fe-4076-9be3-466db6fc0b9c", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, false, false, 37, [], 98, ~U[2026-03-24 12:15:57Z], ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, 37, ~U[2026-03-24 12:15:57Z]] 08:11:03.729 [debug] QUERY OK source="sources" db=0.3ms idle=4.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z], 37] 08:11:03.731 [debug] QUERY OK source="media_items" db=2.1ms 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 ((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")))) [37] 08:11:03.749 [debug] QUERY OK source="media_items" db=2.2ms idle=3.5ms 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")))) [37] 08:11:03.752 [debug] QUERY OK source="media_items" db=3.2ms idle=5.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 08:11:03.754 [debug] QUERY OK source="tasks" db=0.4ms idle=6.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300566, 37, ~U[2026-04-30 13:11:03Z], ~U[2026-04-30 13:11:03Z]] 08:11:03.754 [info] {"args":{"id":37},"id":300481,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":57491208,"event":"job:stop","queue_time":905408,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:11:05.803 [info] {"source":"oban","duration":3731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:11:35.807 [info] {"source":"oban","duration":3320,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:12:00.783 [info] {"source":"oban","duration":162,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:12:05.811 [info] {"source":"oban","duration":3826,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:12:35.816 [info] {"source":"oban","duration":3200,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:00.784 [info] {"source":"oban","duration":393,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:13:05.819 [info] {"source":"oban","duration":2460,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:35.824 [info] {"source":"oban","duration":3775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:00.786 [info] {"source":"oban","duration":225,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:14:05.828 [info] {"source":"oban","duration":3451,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:35.831 [info] {"source":"oban","duration":2312,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:00.787 [info] {"source":"oban","duration":185,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:15:05.834 [info] {"source":"oban","duration":2604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:35.837 [info] {"source":"oban","duration":2504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:16:00.788 [info] {"source":"oban","duration":356,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:16:05.840 [info] {"source":"oban","duration":2564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:16:10.784 [info] {"args":{"id":1153015},"id":299057,"meta":{},"system_time":1777554970784735971,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:16:10.785 [debug] QUERY OK source="media_items" db=0.3ms idle=1597.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" = ?) [1153015] 08:16:10.785 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:16:10.785 [debug] QUERY OK source="sources" db=0.4ms idle=1598.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" = ?) [43] 08:16:10.786 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1009.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] 08:16:10.787 [debug] QUERY OK source="media_items" db=0.4ms idle=8.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 [1153015] 08:16:10.788 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1153015] 08:16:10.788 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:16:10.788 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:16:10.789 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:16:10.789 [debug] Running yt-dlp command for action: get_downloadable_status 08:16:10.790 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:16:10.790 [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 [] 08:16:10.790 [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 [] 08:16:10.790 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bH7TZSSQidc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/d4/bad41297a574ecdb75419a3cb51c4f24d99886c7fbf3a1c48db2e86850ee27f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:16:12.507 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bH7TZSSQidc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/d4/bad41297a574ecdb75419a3cb51c4f24d99886c7fbf3a1c48db2e86850ee27f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] bH7TZSSQidc: Join this channel to get access to members-only content like this video, and other exclusive perks. 08:16:12.508 [error] yt-dlp download error for media item #1153015: "ERROR: [youtube] bH7TZSSQidc: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 08:16:12.508 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1153015},"id":299057,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1723450,"event":"job:exception","queue_time":719880,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:16:35.844 [info] {"source":"oban","duration":3732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:00.789 [info] {"source":"oban","duration":159,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:17:05.849 [info] {"source":"oban","duration":4105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:27.903 [info] {"args":{"id":1460944},"id":299059,"meta":{},"system_time":1777555047903172338,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:17:27.903 [debug] QUERY OK source="media_items" db=0.2ms idle=1716.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" = ?) [1460944] 08:17:27.903 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:27.904 [debug] QUERY OK source="sources" db=0.4ms idle=1009.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" = ?) [43] 08:17:27.904 [debug] QUERY OK source="media_profiles" db=0.1ms idle=717.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] 08:17:27.904 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1460944] 08:17:27.906 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.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" = ?) [1460944] 08:17:27.906 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:17:27.907 [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 [] 08:17:27.907 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:27.907 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:27.908 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:27.908 [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 [] 08:17:27.908 [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 [] 08:17:27.908 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Z73-8Da6vYs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1e/b9/1eb914c476b10bd8b8f88bf0a85817d600574b9b3af000c9e5c453269736ec41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:29.832 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Z73-8Da6vYs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1e/b9/1eb914c476b10bd8b8f88bf0a85817d600574b9b3af000c9e5c453269736ec41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] Z73-8Da6vYs: Join this channel to get access to members-only content like this video, and other exclusive perks. 08:17:29.832 [error] yt-dlp download error for media item #1460944: "ERROR: [youtube] Z73-8Da6vYs: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 08:17:29.832 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1460944},"id":299059,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1929163,"event":"job:exception","queue_time":830839,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:17:35.853 [info] {"source":"oban","duration":3763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:48.937 [info] {"args":{"id":52},"id":300564,"meta":{},"system_time":1777555068937084822,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:17:48.937 [debug] QUERY OK source="sources" db=0.4ms idle=1749.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" = ?) [52] 08:17:48.937 [debug] QUERY OK source="settings" db=0.1ms idle=1750.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 [] 08:17:48.938 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1009.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] 08:17:48.938 [debug] QUERY OK source="settings" db=0.1ms idle=7.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:48.938 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 08:17:49.213 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:17:49.214 [debug] QUERY OK source="media_items" db=0.3ms idle=276.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:17:49.215 [debug] QUERY OK source="settings" db=0.1ms idle=277.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 [] 08:17:49.215 [debug] QUERY OK source="settings" db=0.0ms idle=277.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 [] 08:17:49.215 [debug] Running yt-dlp command for action: get_media_attributes 08:17:49.216 [debug] QUERY OK source="settings" db=0.0ms idle=278.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:49.217 [debug] QUERY OK source="settings" db=0.0ms idle=278.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:49.217 [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 [] 08:17:49.217 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/f5/3c/f53c22ed2f5bdda99207658004b8c75736f88d34bb4c236d2c7d98b99e043044.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:52.342 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/f5/3c/f53c22ed2f5bdda99207658004b8c75736f88d34bb4c236d2c7d98b99e043044.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Unable to download format 96. Skipping... 08:17:52.342 [debug] QUERY OK source="sources" db=0.1ms idle=1155.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" = ?) [52] 08:17:52.343 [debug] QUERY OK source="media_items" db=0.4ms idle=1155.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 13:01:54Z], 52] 08:17:52.346 [debug] QUERY OK source="media_items" db=2.5ms idle=1156.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Don't skip the fundamentals #programming #softwaredevelopment #bashbunni #short", "Don't skip the fundamentals #programming #softwaredevelopment #bashbunni", "8947428b-4ab6-4e72-81eb-2a4d67465b93", "wqu9TMi6plA", 49, false, "https://www.youtube.com/watch?v=wqu9TMi6plA", 0, "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043000_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.mp4", false, false, true, 52, [], 98, ~U[2026-04-30 13:01:54Z], ~U[2026-04-30 13:17:52Z], ~U[2026-04-30 13:17:52Z], "Don't skip the fundamentals #programming #softwaredevelopment #bashbunni #short", "Don't skip the fundamentals #programming #softwaredevelopment #bashbunni", "wqu9TMi6plA", 49, false, "https://www.youtube.com/watch?v=wqu9TMi6plA", "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043000_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.mp4", true, 52, ~U[2026-04-30 13:01:54Z]] 08:17:52.346 [debug] QUERY OK source="sources" db=0.1ms idle=1159.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" = ?) [52] 08:17:52.346 [debug] QUERY OK source="media_profiles" db=0.1ms idle=411.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] 08:17:52.347 [debug] QUERY OK source="media_items" db=0.1ms 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 [2845201] 08:17:52.347 [info] Kicking off download for media item #2845201 (wqu9TMi6plA) 08:17:52.349 [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" [300567, 2845201, ~U[2026-04-30 13:17:52Z], ~U[2026-04-30 13:17:52Z]] 08:17:52.349 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:52.349 [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 [] 08:17:52.349 [debug] Running yt-dlp command for action: get_media_attributes 08:17:52.351 [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 [] 08:17:52.351 [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 [] 08:17:52.351 [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 [] 08:17:52.351 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/d1/66/d1661c554a30f12aee6631332d683e82b341de8ea7c6ec0bf73b657fe421ed53.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:52.355 [info] {"args":{"id":2845201},"id":300567,"meta":{},"system_time":1777555072355559383,"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"]} 08:17:52.355 [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" = ?) [2845201] 08:17:52.356 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:52.356 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 08:17:52.356 [debug] QUERY OK source="media_profiles" db=0.0ms idle=4.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] 08:17:52.356 [debug] QUERY OK source="media_items" db=0.1ms 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 [2845201] 08:17:52.358 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2845201] 08:17:52.358 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:17:52.358 [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 [] 08:17:52.358 [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 [] 08:17:52.358 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:52.359 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:52.359 [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 [] 08:17:52.359 [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 [] 08:17:52.359 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1b/24/1b24c497c6998d2edb2d9ca1f3cd980af5f24c7891a9e5e9fbce655c415d9d5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:53.846 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/d1/66/d1661c554a30f12aee6631332d683e82b341de8ea7c6ec0bf73b657fe421ed53.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 08:17:53.846 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 08:17:53.847 [debug] QUERY OK source="media_items" db=0.5ms idle=1488.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 ((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")))) [52] 08:17:53.849 [debug] QUERY OK source="tasks" db=0.1ms idle=1489.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300568, 1301334, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.852 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300569, 1301335, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.853 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300570, 1301347, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.856 [info] {"args":{"id":1301334},"id":300568,"meta":{},"system_time":1777555073856089866,"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"]} 08:17:53.856 [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 WHERE (m0."id" = ?) [1301334] 08:17:53.856 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:53.856 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300571, 1301392, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.857 [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" = ?) [52] 08:17:53.857 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:17:53.858 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301334] 08:17:53.859 [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" = ?) [1301334] 08:17:53.859 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300572, 1301393, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.859 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:17:53.860 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:17:53.860 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:17:53.860 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:53.862 [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 [] 08:17:53.862 [debug] QUERY OK source="tasks" db=0.3ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300573, 1301394, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.862 [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 [] 08:17:53.863 [debug] QUERY OK source="settings" db=0.4ms 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 [] 08:17:53.863 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/90/74/9074e89b4eca2719b8b162a19204e970c8874fd1a0b57907c936482f9e46bb37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:53.865 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300574, 1301395, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.867 [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" [300575, 1301397, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.870 [debug] QUERY OK source="tasks" db=1.0ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300576, 1301398, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.872 [debug] QUERY OK source="tasks" db=0.2ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300577, 1301399, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.874 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300578, 1301400, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.877 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300579, 2720968, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.878 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 08:17:53.878 [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] 08:17:53.879 [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 [2845201] 08:17:53.879 [info] No notification servers provided for source 52 08:17:53.880 [debug] QUERY OK source="tasks" db=0.2ms idle=1.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300580, 52, ~U[2026-04-30 13:17:53Z], ~U[2026-04-30 13:17:53Z]] 08:17:53.880 [info] {"args":{"id":52},"id":300564,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":4943111,"event":"job:stop","queue_time":71626,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:17:55.522 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1b/24/1b24c497c6998d2edb2d9ca1f3cd980af5f24c7891a9e5e9fbce655c415d9d5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:17:55.523 [debug] Running yt-dlp command for action: download 08:17:55.523 [debug] QUERY OK source="settings" db=0.1ms idle=585.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 [] 08:17:55.523 [debug] QUERY OK source="settings" db=0.2ms idle=336.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 [] 08:17:55.523 [debug] QUERY OK source="settings" db=0.0ms idle=336.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:55.524 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S98_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S98_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c8/d8/c8d8ae33d816805e13c70edd90c5a9314a9c9466e5d0206314b940e6ce840c99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:55.781 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/90/74/9074e89b4eca2719b8b162a19204e970c8874fd1a0b57907c936482f9e46bb37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:17:55.781 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:55.781 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:55.782 [info] {"args":{"id":1301334},"id":300568,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1925920,"event":"job:stop","queue_time":854937,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:17:55.788 [info] {"args":{"id":1301335},"id":300569,"meta":{},"system_time":1777555075788595555,"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"]} 08:17:55.788 [debug] QUERY OK source="media_items" db=0.2ms idle=265.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" = ?) [1301335] 08:17:55.789 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:55.789 [debug] QUERY OK source="sources" db=0.0ms idle=265.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" = ?) [52] 08:17:55.789 [debug] QUERY OK source="media_profiles" db=0.1ms idle=265.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] 08:17:55.789 [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 [1301335] 08:17:55.791 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301335] 08:17:55.791 [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] 08:17:55.791 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:55.791 [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 [] 08:17:55.792 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:55.792 [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 [] 08:17:55.793 [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 [] 08:17:55.793 [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 [] 08:17:55.793 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/33/4d/334d7c7f1df0a8652eb24be6ee6145cd4e3e3470af7f6efe644ef30c60f1f9c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:57.675 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/33/4d/334d7c7f1df0a8652eb24be6ee6145cd4e3e3470af7f6efe644ef30c60f1f9c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:17:57.675 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:57.675 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:57.675 [info] {"args":{"id":1301335},"id":300569,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1886857,"event":"job:stop","queue_time":2787938,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:17:57.682 [info] {"args":{"id":1301347},"id":300570,"meta":{},"system_time":1777555077682521084,"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"]} 08:17:57.682 [debug] QUERY OK source="media_items" db=0.2ms idle=495.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" = ?) [1301347] 08:17:57.683 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:57.683 [debug] QUERY OK source="sources" db=0.1ms idle=495.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" = ?) [52] 08:17:57.683 [debug] QUERY OK source="media_profiles" db=0.1ms idle=496.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] 08:17:57.684 [debug] QUERY OK source="media_items" db=0.3ms idle=7.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 [1301347] 08:17:57.685 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 08:17:57.686 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:17:57.686 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:57.686 [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 [] 08:17:57.686 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:57.687 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:17:57.687 [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 [] 08:17:57.687 [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 [] 08:17:57.687 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8d/10/8d10259219f0f5d725d4f13dfe899497cff5f3564048cbbee424aee53a12f155.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:59.530 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8d/10/8d10259219f0f5d725d4f13dfe899497cff5f3564048cbbee424aee53a12f155.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:17:59.530 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:59.530 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:17:59.531 [info] {"args":{"id":1301347},"id":300570,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1848314,"event":"job:stop","queue_time":4681911,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:17:59.537 [info] {"args":{"id":1301392},"id":300571,"meta":{},"system_time":1777555079537719778,"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"]} 08:17:59.538 [debug] QUERY OK source="media_items" db=0.3ms idle=350.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" = ?) [1301392] 08:17:59.538 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:17:59.538 [debug] QUERY OK source="sources" db=0.1ms idle=351.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" = ?) [52] 08:17:59.539 [debug] QUERY OK source="media_profiles" db=0.1ms idle=351.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] 08:17:59.539 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301392] 08:17:59.540 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301392] 08:17:59.541 [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] 08:17:59.541 [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 [] 08:17:59.541 [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 [] 08:17:59.541 [debug] Running yt-dlp command for action: get_downloadable_status 08:17:59.542 [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 [] 08:17:59.542 [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 [] 08:17:59.542 [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 [] 08:17:59.543 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/70/4c/704c93319992a746fbea2c12a576d886db689a76bd49913425ca94b6d5ad7e3b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:00.790 [info] {"source":"oban","duration":253,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:18:01.335 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/70/4c/704c93319992a746fbea2c12a576d886db689a76bd49913425ca94b6d5ad7e3b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:01.335 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:01.335 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:01.335 [info] {"args":{"id":1301392},"id":300571,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1797724,"event":"job:stop","queue_time":6536901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:01.342 [info] {"args":{"id":1301393},"id":300572,"meta":{},"system_time":1777555081342734794,"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"]} 08:18:01.343 [debug] QUERY OK source="media_items" db=0.1ms 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 WHERE (m0."id" = ?) [1301393] 08:18:01.343 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:01.343 [debug] QUERY OK source="sources" db=0.2ms idle=156.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" = ?) [52] 08:18:01.343 [debug] QUERY OK source="media_profiles" db=0.1ms idle=156.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] 08:18:01.344 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301393] 08:18:01.344 [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" = ?) [1301393] 08:18:01.344 [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] 08:18:01.345 [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 [] 08:18:01.345 [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 [] 08:18:01.345 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:01.347 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:01.347 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:01.347 [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 [] 08:18:01.348 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/16/b7165c46a48d3db5576069614c096cd2d3a2f4e309aaa207be4e98efca6f9caf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:01.364 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S98_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S98_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c8/d8/c8d8ae33d816805e13c70edd90c5a9314a9c9466e5d0206314b940e6ce840c99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Unable to download format 96. Skipping... 08:18:01.379 [debug] Running yt-dlp command for action: download_thumbnail 08:18:01.381 [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 [] 08:18:01.381 [debug] QUERY OK source="settings" db=0.0ms idle=36.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 [] 08:18:01.381 [debug] QUERY OK source="settings" db=0.1ms idle=33.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:18:01.381 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2845201/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ff/95/ff952ee21b30c7b86ddb4bf6b9f10321c9b559404e68e191581f142720810367.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:03.012 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/16/b7165c46a48d3db5576069614c096cd2d3a2f4e309aaa207be4e98efca6f9caf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:03.012 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:03.012 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:03.013 [info] {"args":{"id":1301393},"id":300572,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1670136,"event":"job:stop","queue_time":8341927,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:03.019 [info] {"args":{"id":1301394},"id":300573,"meta":{},"system_time":1777555083019475893,"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"]} 08:18:03.019 [debug] QUERY OK source="media_items" db=0.2ms idle=1637.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" = ?) [1301394] 08:18:03.020 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:03.020 [debug] QUERY OK source="sources" db=0.1ms idle=1073.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" = ?) [52] 08:18:03.020 [debug] QUERY OK source="media_profiles" db=0.2ms idle=72.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] 08:18:03.021 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301394] 08:18:03.023 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301394] 08:18:03.023 [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] 08:18:03.023 [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 [] 08:18:03.023 [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 [] 08:18:03.023 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:03.025 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 08:18:03.025 [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 [] 08:18:03.025 [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 [] 08:18:03.025 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ad/e4/ade4b114d88eba098f0f625041d526a4a942ebcdbd5d39c1c15a970f61316eee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:04.701 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wqu9TMi6plA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2845201/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ff/95/ff952ee21b30c7b86ddb4bf6b9f10321c9b559404e68e191581f142720810367.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:18:04.702 [debug] QUERY OK db=0.0ms idle=753.6ms begin [] 08:18:04.703 [debug] QUERY OK source="media_items" db=1.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "predicted_media_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:18:01Z], "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043098_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.mp4", "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043098_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.info.json", "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043098_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.nfo", "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043098_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni.mp4", "/downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season 2026/s2026e043098_Don't skip the fundamentals #programming #softwaredevelopment #bashbunni-thumb.jpg", ~U[2026-04-30 13:18:04Z], 2845201] 08:18:04.704 [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/2845201/metadata.json.gz", "/config/metadata/media_items/2845201/thumbnail.jpg", 2845201, ~U[2026-04-30 13:18:04Z], ~U[2026-04-30 13:18:04Z]] 08:18:04.704 [debug] QUERY OK db=0.2ms commit [] 08:18:04.705 [debug] QUERY OK source="media_items" db=0.3ms idle=517.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [12353692, ~U[2026-04-30 13:18:04Z], 2845201] 08:18:04.705 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:04.705 [info] {"args":{"id":2845201},"id":300567,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":12349865,"event":"job:stop","queue_time":354946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:04.711 [info] {"args":{"id":1301395},"id":300574,"meta":{},"system_time":1777555084711559828,"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"]} 08:18:04.711 [debug] QUERY OK source="media_items" db=0.1ms idle=524.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" = ?) [1301395] 08:18:04.712 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:04.712 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 08:18:04.712 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:18:04.713 [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 [1301395] 08:18:04.714 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301395] 08:18:04.714 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:18:04.715 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:04.715 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:04.715 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:04.716 [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 [] 08:18:04.716 [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 [] 08:18:04.716 [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 [] 08:18:04.716 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/e3/9ce3c5504705f6c20892810e18f558910afe2f92fa1ad69d3fb37e0598c4709f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:04.735 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ad/e4/ade4b114d88eba098f0f625041d526a4a942ebcdbd5d39c1c15a970f61316eee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:04.735 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:04.735 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:04.735 [info] {"args":{"id":1301394},"id":300573,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1716202,"event":"job:stop","queue_time":10018939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:04.742 [info] {"args":{"id":1301397},"id":300575,"meta":{},"system_time":1777555084742488450,"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"]} 08:18:04.742 [debug] QUERY OK source="media_items" db=0.1ms idle=26.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" = ?) [1301397] 08:18:04.742 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:04.743 [debug] QUERY OK source="sources" db=0.2ms idle=26.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" = ?) [52] 08:18:04.743 [debug] QUERY OK source="media_profiles" db=0.1ms idle=26.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] 08:18:04.743 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301397] 08:18:04.745 [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" = ?) [1301397] 08:18:04.745 [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] 08:18:04.745 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:04.745 [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 [] 08:18:04.746 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:04.746 [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 [] 08:18:04.746 [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 [] 08:18:04.746 [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 [] 08:18:04.746 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/72/c2729465e5311d15d14a45a213ba40117ad8195b625b9a9680d4fffd382bde39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:05.858 [info] {"source":"oban","duration":4235,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:18:06.439 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/e3/9ce3c5504705f6c20892810e18f558910afe2f92fa1ad69d3fb37e0598c4709f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:06.439 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:06.439 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:06.440 [info] {"args":{"id":1301395},"id":300574,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1728175,"event":"job:stop","queue_time":11710895,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:06.446 [info] {"args":{"id":1301398},"id":300576,"meta":{},"system_time":1777555086446633733,"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"]} 08:18:06.447 [debug] QUERY OK source="media_items" db=0.1ms idle=259.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" = ?) [1301398] 08:18:06.447 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:06.447 [debug] QUERY OK source="sources" db=0.1ms idle=260.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" = ?) [52] 08:18:06.447 [debug] QUERY OK source="media_profiles" db=0.1ms idle=260.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] 08:18:06.448 [debug] QUERY OK source="media_items" db=0.3ms idle=7.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 [1301398] 08:18:06.449 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301398] 08:18:06.449 [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] 08:18:06.450 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:06.450 [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 [] 08:18:06.450 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:06.451 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:06.451 [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 [] 08:18:06.451 [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 [] 08:18:06.451 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b2/30/b230459b23315fed78ad9da02bf8049ad767a6472e64fee6869c2a1fea938811.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:06.500 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/72/c2729465e5311d15d14a45a213ba40117ad8195b625b9a9680d4fffd382bde39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:06.500 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:06.500 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:06.501 [info] {"args":{"id":1301397},"id":300575,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1758174,"event":"job:stop","queue_time":11741892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:06.507 [info] {"args":{"id":1301399},"id":300577,"meta":{},"system_time":1777555086507358116,"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"]} 08:18:06.507 [debug] QUERY OK source="media_items" db=0.1ms idle=56.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" = ?) [1301399] 08:18:06.507 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:06.508 [debug] QUERY OK source="sources" db=0.2ms idle=56.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" = ?) [52] 08:18:06.508 [debug] QUERY OK source="media_profiles" db=0.1ms idle=56.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] 08:18:06.508 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301399] 08:18:06.509 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301399] 08:18:06.509 [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] 08:18:06.510 [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 [] 08:18:06.510 [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 [] 08:18:06.510 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:06.512 [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 [] 08:18:06.512 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:06.512 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:06.512 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d3/ac/d3ac2af715bb63ba6d8139810291ea9bc42458b7641d2ad7e4b289dbdd76e4bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:08.167 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b2/30/b230459b23315fed78ad9da02bf8049ad767a6472e64fee6869c2a1fea938811.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:08.167 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:08.167 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:08.167 [info] {"args":{"id":1301398},"id":300576,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1720833,"event":"job:stop","queue_time":13445947,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:08.175 [info] {"args":{"id":1301400},"id":300578,"meta":{},"system_time":1777555088174924458,"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"]} 08:18:08.175 [debug] QUERY OK source="media_items" db=0.3ms idle=1662.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" = ?) [1301400] 08:18:08.175 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:08.176 [debug] QUERY OK source="sources" db=0.1ms idle=1221.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" = ?) [52] 08:18:08.176 [debug] QUERY OK source="media_profiles" db=0.1ms idle=220.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] 08:18:08.176 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [1301400] 08:18:08.178 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301400] 08:18:08.178 [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] 08:18:08.178 [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 [] 08:18:08.178 [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 [] 08:18:08.178 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:08.178 [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 [] 08:18:08.178 [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 [] 08:18:08.179 [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 [] 08:18:08.179 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bf/34/bf346d0eb616214417cc3cfeef628833a401aa804e91768c06ceab4b4c062484.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:08.289 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d3/ac/d3ac2af715bb63ba6d8139810291ea9bc42458b7641d2ad7e4b289dbdd76e4bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:08.289 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:08.290 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:08.290 [info] {"args":{"id":1301399},"id":300577,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1782772,"event":"job:stop","queue_time":13506907,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:08.296 [info] {"args":{"id":2720968},"id":300579,"meta":{},"system_time":1777555088296474861,"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"]} 08:18:08.296 [debug] QUERY OK source="media_items" db=0.1ms idle=117.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" = ?) [2720968] 08:18:08.296 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:18:08.297 [debug] QUERY OK source="sources" db=0.1ms idle=118.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" = ?) [52] 08:18:08.297 [debug] QUERY OK source="media_profiles" db=0.1ms idle=118.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] 08:18:08.297 [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 [2720968] 08:18:08.299 [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" = ?) [2720968] 08:18:08.299 [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] 08:18:08.299 [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 [] 08:18:08.299 [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 [] 08:18:08.299 [debug] Running yt-dlp command for action: get_downloadable_status 08:18:08.300 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:18:08.300 [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 [] 08:18:08.300 [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 [] 08:18:08.301 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5e/d2/5ed2d67bef811521fa33a07b986c0f33819c31c89c6a0bb37ec91b3a42c04f08.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:18:09.919 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5e/d2/5ed2d67bef811521fa33a07b986c0f33819c31c89c6a0bb37ec91b3a42c04f08.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:09.919 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:09.920 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:09.920 [info] {"args":{"id":2720968},"id":300579,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1623578,"event":"job:stop","queue_time":15295939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:09.951 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bf/34/bf346d0eb616214417cc3cfeef628833a401aa804e91768c06ceab4b4c062484.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:18:09.951 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:09.951 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:18:09.951 [info] {"args":{"id":1301400},"id":300578,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1776492,"event":"job:stop","queue_time":15173898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:18:35.862 [info] {"source":"oban","duration":3457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:00.791 [info] {"source":"oban","duration":272,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:19:05.867 [info] {"source":"oban","duration":4000,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:35.871 [info] {"source":"oban","duration":3287,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:20:00.792 [info] {"source":"oban","duration":618,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:20:05.874 [info] {"source":"oban","duration":2251,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:20:14.151 [info] {"args":{"id":46},"id":300495,"meta":{},"system_time":1777555214151454559,"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"]} 08:20:14.152 [debug] QUERY OK source="sources" db=0.3ms idle=964.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" = ?) [46] 08:20:14.152 [debug] QUERY OK source="settings" db=0.1ms idle=965.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:20:14.153 [debug] QUERY OK source="media_items" db=0.6ms idle=965.4ms 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")))) [46] 08:20:14.153 [debug] QUERY OK source="media_items" db=0.2ms idle=7.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 08:20:14.153 [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] 08:20:14.154 [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 [] 08:20:14.154 [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 [] 08:20:14.155 [debug] QUERY OK source="media_items" db=0.5ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [46] 08:20:14.157 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:20:14.157 [debug] Current batch of media processed. Will check again in 1000ms 08:20:14.157 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:20:14.157 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:20:14.157 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:20:14.158 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCngn7SVujlvskHRvRKc1cTw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/3c/62/3c6228a53287d2be2b7a0fb64c27c622a2ee7c2705dba33f40f1564dbf906930.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/12/4d/124d48a8032cb6ddb035bf863aec7e0039bc449da58a8be20eddc40a606d5f71.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:20:15.158 [debug] Current batch of media processed. Will check again in 1000ms 08:20:16.159 [debug] Current batch of media processed. Will check again in 1000ms 08:20:17.159 [debug] Current batch of media processed. Will check again in 1000ms 08:20:18.161 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 549, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", "id" => "fLmIRC8R19s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fLmIRC8R19s", "playlist_index" => 1, "timestamp" => 1772314079, "title" => "Linux / FOSS are irrelevant in the future", "upload_date" => "20260228"} 08:20:18.161 [debug] QUERY OK source="sources" db=0.2ms idle=974.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 (?)) [46] 08:20:18.162 [debug] QUERY OK source="sources" db=0.2ms idle=975.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" = ?) [46] 08:20:18.162 [debug] QUERY OK source="media_items" db=0.3ms idle=975.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-28 21:27:59Z], 46] 08:20:18.164 [debug] QUERY OK source="media_items" db=1.7ms idle=976.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "798de220-23cd-4f31-b2dc-227dbfe795ce", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, false, false, 46, [], 98, ~U[2026-02-28 21:27:59Z], ~U[2026-04-30 13:20:18Z], ~U[2026-04-30 13:20:18Z], "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, 46, ~U[2026-02-28 21:27:59Z]] 08:20:18.165 [debug] QUERY OK source="sources" db=0.2ms idle=14.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" = ?) [46] 08:20:18.165 [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] 08:20:18.166 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2377781] 08:20:18.166 [debug] Current batch of media processed. Will check again in 1000ms 08:20:19.167 [debug] Current batch of media processed. Will check again in 1000ms 08:20:20.168 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 507, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", "id" => "7y60xBovdnI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7y60xBovdnI", "playlist_index" => 2, "timestamp" => 1772097703, "title" => "HOST FREE from home (no tunnel, no VPS, no Static IP)", "upload_date" => "20260226"} 08:20:20.168 [debug] QUERY OK source="sources" db=0.2ms idle=981.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 (?)) [46] 08:20:20.168 [debug] QUERY OK source="sources" db=0.1ms idle=981.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" = ?) [46] 08:20:20.169 [debug] QUERY OK source="media_items" db=0.5ms idle=982.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 09:21:43Z], 46] 08:20:20.170 [debug] QUERY OK source="media_items" db=0.6ms idle=982.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "84918035-aec7-458b-8d81-bf9af35cec34", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, false, false, 46, [], 98, ~U[2026-02-26 09:21:43Z], ~U[2026-04-30 13:20:20Z], ~U[2026-04-30 13:20:20Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, 46, ~U[2026-02-26 09:21:43Z]] 08:20:20.171 [debug] QUERY OK source="sources" db=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" = ?) [46] 08:20:20.171 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:20:20.171 [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 [2358266] 08:20:20.171 [debug] Current batch of media processed. Will check again in 1000ms 08:20:21.173 [debug] Current batch of media processed. Will check again in 1000ms 08:20:22.174 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 684, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", "id" => "LrOuqMzKdAE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LrOuqMzKdAE", "playlist_index" => 3, "timestamp" => 1771588269, "title" => "MacOS *float vs Hyprland *tile", "upload_date" => "20260220"} 08:20:22.174 [debug] QUERY OK source="sources" db=0.1ms idle=987.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 (?)) [46] 08:20:22.174 [debug] QUERY OK source="sources" db=0.1ms idle=987.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" = ?) [46] 08:20:22.175 [debug] QUERY OK source="media_items" db=0.4ms idle=987.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 11:51:09Z], 46] 08:20:22.176 [debug] QUERY OK source="media_items" db=0.5ms idle=988.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "4eae1814-8d13-4f35-b07a-e6a04a3d5661", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, false, false, 46, [], 98, ~U[2026-02-20 11:51:09Z], ~U[2026-04-30 13:20:22Z], ~U[2026-04-30 13:20:22Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, 46, ~U[2026-02-20 11:51:09Z]] 08:20:22.176 [debug] QUERY OK source="sources" db=0.2ms idle=20.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" = ?) [46] 08:20:22.176 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:20:22.177 [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 [2312061] 08:20:22.177 [debug] Current batch of media processed. Will check again in 1000ms 08:20:23.178 [debug] Current batch of media processed. Will check again in 1000ms 08:20:24.179 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 1711, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", "id" => "kD1VhTacIc8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kD1VhTacIc8", "playlist_index" => 4, "timestamp" => 1771110716, "title" => "freedom is a meme just like your life", "upload_date" => "20260214"} 08:20:24.179 [debug] QUERY OK source="sources" db=0.1ms 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" IN (?)) [46] 08:20:24.179 [debug] QUERY OK source="sources" db=0.1ms idle=992.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" = ?) [46] 08:20:24.180 [debug] QUERY OK source="media_items" db=0.3ms idle=992.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 23:11:56Z], 46] 08:20:24.181 [debug] QUERY OK source="media_items" db=0.5ms idle=993.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "d1f75e27-0483-4d0c-9ab5-f71e219134c1", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, false, false, 46, [], 98, ~U[2026-02-14 23:11:56Z], ~U[2026-04-30 13:20:24Z], ~U[2026-04-30 13:20:24Z], "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, 46, ~U[2026-02-14 23:11:56Z]] 08:20:24.181 [debug] QUERY OK source="sources" db=0.1ms idle=22.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" = ?) [46] 08:20:24.181 [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] 08:20:24.182 [debug] QUERY OK source="media_items" db=0.1ms 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 [2269214] 08:20:24.182 [debug] Current batch of media processed. Will check again in 1000ms 08:20:25.183 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 748, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", "id" => "f4vblLRAYSg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f4vblLRAYSg", "playlist_index" => 5, "timestamp" => 1770629468, "title" => "Tibetan Anti-philosophy can end your DOOM Scrolling", "upload_date" => "20260209"} 08:20:25.183 [debug] QUERY OK source="sources" db=0.1ms 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" IN (?)) [46] 08:20:25.183 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [46] 08:20:25.184 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-09 09:31:08Z], 46] 08:20:25.185 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "83e62c24-ab5e-4147-ae87-f6bd9d601ace", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, false, false, 46, [], 98, ~U[2026-02-09 09:31:08Z], ~U[2026-04-30 13:20:25Z], ~U[2026-04-30 13:20:25Z], "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, 46, ~U[2026-02-09 09:31:08Z]] 08:20:25.185 [debug] QUERY OK source="sources" db=0.1ms idle=26.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" = ?) [46] 08:20:25.186 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:20:25.186 [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 [2225383] 08:20:25.186 [debug] Current batch of media processed. Will check again in 1000ms 08:20:26.187 [debug] Current batch of media processed. Will check again in 1000ms 08:20:27.188 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 829, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", "id" => "f5qgJ9xThYs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f5qgJ9xThYs", "playlist_index" => 6, "timestamp" => 1769459768, "title" => "Freedom vs Compliance", "upload_date" => "20260126"} 08:20:27.188 [debug] QUERY OK source="sources" db=0.1ms idle=1001.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 (?)) [46] 08:20:27.188 [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" = ?) [46] 08:20:27.189 [debug] QUERY OK source="media_items" db=0.4ms idle=1001.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-26 20:36:08Z], 46] 08:20:27.190 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "9019f610-48ab-4653-9f83-12c1f6acda2c", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, false, false, 46, [], 98, ~U[2026-01-26 20:36:08Z], ~U[2026-04-30 13:20:27Z], ~U[2026-04-30 13:20:27Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, 46, ~U[2026-01-26 20:36:08Z]] 08:20:27.190 [debug] QUERY OK source="sources" db=0.1ms idle=28.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" = ?) [46] 08:20:27.190 [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] 08:20:27.191 [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 [2117716] 08:20:27.191 [debug] Current batch of media processed. Will check again in 1000ms 08:20:28.191 [debug] Current batch of media processed. Will check again in 1000ms 08:20:29.193 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 727, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", "id" => "giQ_7l5p2Kg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "playlist_index" => 7, "timestamp" => 1768173959, "title" => "Why developers fail earning $$$ (independently) ?", "upload_date" => "20260111"} 08:20:29.193 [debug] QUERY OK source="sources" db=0.1ms idle=29.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 (?)) [46] 08:20:29.193 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 08:20:29.194 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-11 23:25:59Z], 46] 08:20:29.195 [debug] QUERY OK source="media_items" db=0.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "56fa474a-53a9-44c2-b3de-0bcff2b91d8d", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, false, false, 46, [], 98, ~U[2026-01-11 23:25:59Z], ~U[2026-04-30 13:20:29Z], ~U[2026-04-30 13:20:29Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, 46, ~U[2026-01-11 23:25:59Z]] 08:20:29.195 [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" = ?) [46] 08:20:29.196 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:20:29.196 [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 [1997905] 08:20:29.196 [debug] Current batch of media processed. Will check again in 1000ms 08:20:30.196 [debug] Current batch of media processed. Will check again in 1000ms 08:20:30.545 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCngn7SVujlvskHRvRKc1cTw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/3c/62/3c6228a53287d2be2b7a0fb64c27c622a2ee7c2705dba33f40f1564dbf906930.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/12/4d/124d48a8032cb6ddb035bf863aec7e0039bc449da58a8be20eddc40a606d5f71.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 08:20:30.545 [debug] Gracefully stopping file follower 08:20:30.545 [debug] QUERY OK source="sources" db=0.1ms idle=1350.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 (?)) [46] 08:20:30.546 [debug] QUERY OK source="sources" db=0.1ms idle=1350.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" = ?) [46] 08:20:30.546 [debug] QUERY OK source="media_items" db=0.4ms idle=1350.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-28 21:27:59Z], 46] 08:20:30.547 [debug] QUERY OK source="media_items" db=0.4ms idle=1350.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "0c41326c-4772-433f-b17b-d5410abf90b7", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, false, false, 46, [], 98, ~U[2026-02-28 21:27:59Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, 46, ~U[2026-02-28 21:27:59Z]] 08:20:30.547 [debug] QUERY OK source="sources" db=0.1ms idle=382.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" = ?) [46] 08:20:30.548 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 09:21:43Z], 46] 08:20:30.548 [debug] QUERY OK source="media_items" db=0.5ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "011e56c6-778e-4ec1-9977-d4d3e307b569", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, false, false, 46, [], 98, ~U[2026-02-26 09:21:43Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, 46, ~U[2026-02-26 09:21:43Z]] 08:20:30.549 [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" = ?) [46] 08:20:30.549 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 11:51:09Z], 46] 08:20:30.550 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "2246163a-3f9e-4065-9650-2b490c5a20d1", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, false, false, 46, [], 98, ~U[2026-02-20 11:51:09Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, 46, ~U[2026-02-20 11:51:09Z]] 08:20:30.550 [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" = ?) [46] 08:20:30.550 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 23:11:56Z], 46] 08:20:30.551 [debug] QUERY OK source="media_items" db=0.4ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "48f71f33-eef0-43ea-b494-c0287e8fcfdd", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, false, false, 46, [], 98, ~U[2026-02-14 23:11:56Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, 46, ~U[2026-02-14 23:11:56Z]] 08:20:30.551 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 08:20:30.552 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-09 09:31:08Z], 46] 08:20:30.553 [debug] QUERY OK source="media_items" db=0.5ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "799f97aa-5ba4-431a-b97a-ae24420ad2c2", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, false, false, 46, [], 98, ~U[2026-02-09 09:31:08Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, 46, ~U[2026-02-09 09:31:08Z]] 08:20:30.553 [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" = ?) [46] 08:20:30.553 [debug] QUERY OK source="media_items" db=0.3ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-26 20:36:08Z], 46] 08:20:30.554 [debug] QUERY OK source="media_items" db=0.4ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "91135aa2-aea8-462c-aca9-e720ef05c3e4", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, false, false, 46, [], 98, ~U[2026-01-26 20:36:08Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, 46, ~U[2026-01-26 20:36:08Z]] 08:20:30.554 [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" = ?) [46] 08:20:30.555 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-11 23:25:59Z], 46] 08:20:30.555 [debug] QUERY OK source="media_items" db=0.4ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "d5f68d50-2aaf-4219-b54c-31d1fa0b6e4f", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, false, false, 46, [], 98, ~U[2026-01-11 23:25:59Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, 46, ~U[2026-01-11 23:25:59Z]] 08:20:30.556 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 08:20:30.556 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 22:38:39Z], 46] 08:20:30.557 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "200e6206-d838-450c-b0b8-f5c6be0bb770", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, false, 46, [], 98, ~U[2025-12-27 22:38:39Z], ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, 46, ~U[2025-12-27 22:38:39Z]] 08:20:30.557 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z], 46] 08:20:30.558 [debug] QUERY OK source="media_items" db=0.4ms 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" FROM "media_items" AS m0 INNER JOIN "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")))) [46] 08:20:30.558 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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")))) [46] 08:20:30.558 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 08:20:30.560 [debug] QUERY OK source="tasks" db=0.2ms idle=1.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300581, 46, ~U[2026-04-30 13:20:30Z], ~U[2026-04-30 13:20:30Z]] 08:20:30.560 [info] {"args":{"id":46},"id":300495,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":16408779,"event":"job:stop","queue_time":571358,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:20:32.175 [info] {"args":{"id":2145344},"id":299061,"meta":{},"system_time":1777555232175432602,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:20:32.175 [debug] QUERY OK source="media_items" db=0.1ms idle=1615.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" = ?) [2145344] 08:20:32.176 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:20:32.176 [debug] QUERY OK source="sources" db=0.2ms idle=1609.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" = ?) [43] 08:20:32.176 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1010.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] 08:20:32.177 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2145344] 08:20:32.178 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2145344] 08:20:32.178 [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] 08:20:32.178 [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 [] 08:20:32.178 [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 [] 08:20:32.178 [debug] Running yt-dlp command for action: get_downloadable_status 08:20:32.179 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:20:32.180 [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 [] 08:20:32.180 [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 [] 08:20:32.180 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lbrpCTr9dgs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d8/21/d821031440da7508a4522801f437691eaec1e2afc6d1b60b217be45b9b51a945.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:20:33.752 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lbrpCTr9dgs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d8/21/d821031440da7508a4522801f437691eaec1e2afc6d1b60b217be45b9b51a945.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] lbrpCTr9dgs: Join this channel to get access to members-only content like this video, and other exclusive perks. 08:20:33.752 [error] yt-dlp download error for media item #2145344: "ERROR: [youtube] lbrpCTr9dgs: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 08:20:33.753 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2145344},"id":299061,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1577383,"event":"job:exception","queue_time":895747,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:20:35.878 [info] {"source":"oban","duration":3271,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:00.793 [info] {"source":"oban","duration":251,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:21:05.883 [info] {"source":"oban","duration":4579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:35.887 [info] {"source":"oban","duration":3529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:00.794 [info] {"source":"oban","duration":401,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:22:05.892 [info] {"source":"oban","duration":3824,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:35.896 [info] {"source":"oban","duration":2579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:37.353 [info] {"args":{"id":45},"id":300496,"meta":{},"system_time":1777555357353687378,"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"]} 08:22:37.354 [debug] QUERY OK source="sources" db=0.1ms idle=166.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" = ?) [45] 08:22:37.354 [debug] QUERY OK source="settings" db=0.3ms idle=167.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 [] 08:22:37.356 [debug] QUERY OK source="media_items" db=1.4ms idle=167.6ms 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")))) [45] 08:22:37.362 [debug] QUERY OK source="media_items" db=6.0ms idle=8.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 08:22:37.362 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.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] 08:22:37.362 [debug] QUERY OK source="settings" db=0.1ms idle=8.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:22:37.363 [debug] QUERY OK source="settings" db=0.0ms idle=8.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 [] 08:22:37.365 [debug] QUERY OK source="media_items" db=1.1ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [45] 08:22:37.367 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:22:37.367 [debug] Current batch of media processed. Will check again in 1000ms 08:22:37.367 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:22:37.367 [debug] QUERY OK source="settings" db=0.1ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:22:37.367 [debug] QUERY OK source="settings" db=0.1ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:22:37.368 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/b2/6b/b26b7996a3449b7b3ca4540c409521125ba0a9b64b19c2692bb13d95f07cd044.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a7/a5/a7a58d6f550b042bb5c7a4d50a213e9363f1b8f7c8a566c5250db91b7b4c72be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:22:38.367 [debug] Current batch of media processed. Will check again in 1000ms 08:22:39.368 [debug] Current batch of media processed. Will check again in 1000ms 08:22:40.370 [debug] Current batch of media processed. Will check again in 1000ms 08:22:41.371 [debug] Current batch of media processed. Will check again in 1000ms 08:22:42.371 [debug] Current batch of media processed. Will check again in 1000ms 08:22:43.373 [debug] Current batch of media processed. Will check again in 1000ms 08:22:44.374 [debug] Current batch of media processed. Will check again in 1000ms 08:22:45.375 [debug] Current batch of media processed. Will check again in 1000ms 08:22:46.375 [debug] Current batch of media processed. Will check again in 1000ms 08:22:47.377 [debug] Current batch of media processed. Will check again in 1000ms 08:22:48.378 [debug] Current batch of media processed. Will check again in 1000ms 08:22:49.379 [debug] Current batch of media processed. Will check again in 1000ms 08:22:50.380 [debug] Current batch of media processed. Will check again in 1000ms 08:22:51.381 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 523, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", "id" => "xQO7svoRelw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xQO7svoRelw", "playlist_index" => 1, "timestamp" => 1777511969, "title" => "Canonical Is Adding AI to Ubuntu", "upload_date" => "20260430"} 08:22:51.381 [debug] QUERY OK source="sources" db=0.1ms idle=194.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 (?)) [45] 08:22:51.381 [debug] QUERY OK source="sources" db=0.1ms idle=194.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" = ?) [45] 08:22:51.383 [debug] QUERY OK source="media_items" db=1.4ms idle=194.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 01:19:29Z], 45] 08:22:51.384 [debug] QUERY OK source="media_items" db=0.7ms idle=196.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "6b3bd6cb-e7c3-4314-8a32-5a70fcaef621", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2026-04-30 01:19:29Z], ~U[2026-04-30 13:22:51Z], ~U[2026-04-30 13:22:51Z], "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, 45, ~U[2026-04-30 01:19:29Z]] 08:22:51.384 [debug] QUERY OK source="sources" db=0.2ms idle=18.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" = ?) [45] 08:22:51.385 [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] 08:22:51.385 [debug] QUERY OK source="media_items" db=0.1ms 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 [2841980] 08:22:51.385 [debug] Current batch of media processed. Will check again in 1000ms 08:22:52.386 [debug] Current batch of media processed. Will check again in 1000ms 08:22:53.387 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 543, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", "id" => "u3XlqKBeONY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=u3XlqKBeONY", "playlist_index" => 2, "timestamp" => 1777138036, "title" => "When The AI Model Comes With RCE", "upload_date" => "20260425"} 08:22:53.388 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=201.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 (?)) [45] 08:22:53.388 [debug] QUERY OK source="sources" db=0.1ms idle=201.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" = ?) [45] 08:22:53.390 [debug] QUERY OK source="media_items" db=1.3ms idle=202.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:27:16Z], 45] 08:22:53.392 [debug] QUERY OK source="media_items" db=1.3ms idle=203.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "cadc2f77-5b0c-427d-9755-c09aa1695590", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, false, false, 45, [], 98, ~U[2026-04-25 17:27:16Z], ~U[2026-04-30 13:22:53Z], ~U[2026-04-30 13:22:53Z], "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, 45, ~U[2026-04-25 17:27:16Z]] 08:22:53.392 [debug] QUERY OK source="sources" db=0.1ms idle=23.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" = ?) [45] 08:22:53.392 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:22:53.393 [debug] QUERY OK source="media_items" db=0.1ms 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 [2808375] 08:22:53.393 [debug] Current batch of media processed. Will check again in 1000ms 08:22:54.393 [debug] Current batch of media processed. Will check again in 1000ms 08:22:55.395 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 514, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", "id" => "ThTJAlYGqkE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ThTJAlYGqkE", "playlist_index" => 3, "timestamp" => 1776475697, "title" => "France Is Ditching Windows for Linux", "upload_date" => "20260418"} 08:22:55.396 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 08:22:55.396 [debug] QUERY OK source="sources" db=0.1ms idle=209.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" = ?) [45] 08:22:55.398 [debug] QUERY OK source="media_items" db=1.5ms idle=209.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 01:28:17Z], 45] 08:22:55.399 [debug] QUERY OK source="media_items" db=0.9ms idle=211.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "fa5c75c1-da72-4d64-a58c-bd70ac918d20", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, false, false, 45, [], 98, ~U[2026-04-18 01:28:17Z], ~U[2026-04-30 13:22:55Z], ~U[2026-04-30 13:22:55Z], "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, 45, ~U[2026-04-18 01:28:17Z]] 08:22:55.399 [debug] QUERY OK source="sources" db=0.1ms idle=28.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" = ?) [45] 08:22:55.399 [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] 08:22:55.400 [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 [2749206] 08:22:55.400 [debug] Current batch of media processed. Will check again in 1000ms 08:22:56.401 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 515, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", "id" => "MsAOy_mSp_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MsAOy_mSp_4", "playlist_index" => 4, "timestamp" => 1776126540, "title" => "Your Home Router Might Be In Danger", "upload_date" => "20260414"} 08:22:56.401 [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 (?)) [45] 08:22:56.402 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [45] 08:22:56.403 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 00:29:00Z], 45] 08:22:56.404 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "57ea027d-0432-4069-99ef-75cbc2db7fea", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, false, false, 45, [], 98, ~U[2026-04-14 00:29:00Z], ~U[2026-04-30 13:22:56Z], ~U[2026-04-30 13:22:56Z], "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, 45, ~U[2026-04-14 00:29:00Z]] 08:22:56.405 [debug] QUERY OK source="sources" db=0.2ms idle=32.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" = ?) [45] 08:22:56.405 [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] 08:22:56.405 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2723981] 08:22:56.405 [debug] Current batch of media processed. Will check again in 1000ms 08:22:57.406 [debug] Current batch of media processed. Will check again in 1000ms 08:22:58.407 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 889, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", "id" => "la21SXOll6c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=la21SXOll6c", "playlist_index" => 5, "timestamp" => 1775739724, "title" => "Install Arch Linux The Lazy Way", "upload_date" => "20260409"} 08:22:58.407 [debug] QUERY OK source="sources" db=0.1ms idle=219.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 (?)) [45] 08:22:58.407 [debug] QUERY OK source="sources" db=0.0ms idle=220.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" = ?) [45] 08:22:58.409 [debug] QUERY OK source="media_items" db=1.3ms idle=220.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:02:04Z], 45] 08:22:58.410 [debug] QUERY OK source="media_items" db=0.8ms idle=222.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "bda5ac82-bc5c-484e-9e4e-953b52d7d711", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, false, false, 45, [], 98, ~U[2026-04-09 13:02:04Z], ~U[2026-04-30 13:22:58Z], ~U[2026-04-30 13:22:58Z], "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, 45, ~U[2026-04-09 13:02:04Z]] 08:22:58.410 [debug] QUERY OK source="sources" db=0.1ms idle=35.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" = ?) [45] 08:22:58.410 [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] 08:22:58.411 [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 [2688305] 08:22:58.411 [debug] Current batch of media processed. Will check again in 1000ms 08:22:59.412 [debug] Current batch of media processed. Will check again in 1000ms 08:23:00.413 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 659, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", "id" => "J6SFrdHOuFM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=J6SFrdHOuFM", "playlist_index" => 6, "timestamp" => 1775004780, "title" => "Uncomplicated Firewall Guide", "upload_date" => "20260401"} 08:23:00.413 [debug] QUERY OK source="sources" db=0.2ms idle=226.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 (?)) [45] 08:23:00.414 [debug] QUERY OK source="sources" db=0.1ms idle=226.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" = ?) [45] 08:23:00.415 [debug] QUERY OK source="media_items" db=1.3ms idle=227.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 00:53:00Z], 45] 08:23:00.417 [debug] QUERY OK source="media_items" db=1.2ms idle=228.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "5f46f223-3ee3-4e70-b24f-929e904ff614", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, false, false, 45, [], 98, ~U[2026-04-01 00:53:00Z], ~U[2026-04-30 13:23:00Z], ~U[2026-04-30 13:23:00Z], "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, 45, ~U[2026-04-01 00:53:00Z]] 08:23:00.417 [debug] QUERY OK source="sources" db=0.2ms idle=40.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" = ?) [45] 08:23:00.417 [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] 08:23:00.418 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2619987] 08:23:00.418 [debug] Current batch of media processed. Will check again in 1000ms 08:23:00.795 [info] {"source":"oban","duration":240,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:23:01.419 [debug] Current batch of media processed. Will check again in 1000ms 08:23:02.420 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 1125, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", "id" => "oc6WOCx1vCE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oc6WOCx1vCE", "playlist_index" => 7, "timestamp" => 1774389532, "title" => "Making Linux Ungovernable With I2P", "upload_date" => "20260324"} 08:23:02.420 [debug] QUERY OK source="sources" db=0.1ms idle=233.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 (?)) [45] 08:23:02.420 [debug] QUERY OK source="sources" db=0.1ms idle=233.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" = ?) [45] 08:23:02.422 [debug] QUERY OK source="media_items" db=1.3ms idle=233.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 21:58:52Z], 45] 08:23:02.423 [debug] QUERY OK source="media_items" db=0.9ms idle=235.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "0d034a3b-46ba-4646-afc1-c35e142a4e7f", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, false, false, 45, [], 98, ~U[2026-03-24 21:58:52Z], ~U[2026-04-30 13:23:02Z], ~U[2026-04-30 13:23:02Z], "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, 45, ~U[2026-03-24 21:58:52Z]] 08:23:02.423 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:02.424 [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] 08:23:02.424 [debug] QUERY OK source="media_items" db=0.1ms 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 [2565295] 08:23:02.424 [debug] Current batch of media processed. Will check again in 1000ms 08:23:03.425 [debug] Current batch of media processed. Will check again in 1000ms 08:23:04.426 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 532, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", "id" => "4KyiLyOxux8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4KyiLyOxux8", "playlist_index" => 8, "timestamp" => 1773529831, "title" => "Meta Spent Millions To Push The New Age Check Laws", "upload_date" => "20260314"} 08:23:04.426 [debug] QUERY OK source="sources" db=0.2ms idle=239.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 (?)) [45] 08:23:04.427 [debug] QUERY OK source="sources" db=0.1ms idle=239.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" = ?) [45] 08:23:04.428 [debug] QUERY OK source="media_items" db=1.2ms idle=240.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-14 23:10:31Z], 45] 08:23:04.429 [debug] QUERY OK source="media_items" db=0.8ms idle=241.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "a4528c22-02ea-4de2-8444-04dc15e36922", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, false, false, 45, [], 98, ~U[2026-03-14 23:10:31Z], ~U[2026-04-30 13:23:04Z], ~U[2026-04-30 13:23:04Z], "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, 45, ~U[2026-03-14 23:10:31Z]] 08:23:04.429 [debug] QUERY OK source="sources" db=0.1ms idle=49.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" = ?) [45] 08:23:04.430 [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] 08:23:04.430 [debug] QUERY OK source="media_items" db=0.1ms 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 [2488162] 08:23:04.430 [debug] Current batch of media processed. Will check again in 1000ms 08:23:05.431 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 526, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", "id" => "hiMqdYh9LNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hiMqdYh9LNU", "playlist_index" => 9, "timestamp" => 1773332609, "title" => "The Online ID Check Situation is Crazy", "upload_date" => "20260312"} 08:23:05.432 [debug] QUERY OK source="sources" db=0.3ms queue=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" IN (?)) [45] 08:23:05.432 [debug] QUERY OK source="sources" db=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" = ?) [45] 08:23:05.434 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 16:23:29Z], 45] 08:23:05.435 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "e8a9ea36-660f-4ab0-aaac-d05ee8ff8271", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, false, false, 45, [], 98, ~U[2026-03-12 16:23:29Z], ~U[2026-04-30 13:23:05Z], ~U[2026-04-30 13:23:05Z], "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, 45, ~U[2026-03-12 16:23:29Z]] 08:23:05.435 [debug] QUERY OK source="sources" db=0.1ms idle=53.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" = ?) [45] 08:23:05.435 [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] 08:23:05.435 [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 [2470150] 08:23:05.435 [debug] Current batch of media processed. Will check again in 1000ms 08:23:05.900 [info] {"source":"oban","duration":3494,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:23:06.437 [debug] Current batch of media processed. Will check again in 1000ms 08:23:07.438 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 1142, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", "id" => "K3QOAVrhGTg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=K3QOAVrhGTg", "playlist_index" => 10, "timestamp" => 1773183113, "title" => "Installing Linux Just Got Easier", "upload_date" => "20260310"} 08:23:07.439 [debug] QUERY OK source="sources" db=0.3ms idle=251.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 (?)) [45] 08:23:07.439 [debug] QUERY OK source="sources" db=0.1ms idle=251.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" = ?) [45] 08:23:07.441 [debug] QUERY OK source="media_items" db=1.3ms idle=252.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-10 22:51:53Z], 45] 08:23:07.442 [debug] QUERY OK source="media_items" db=0.8ms idle=253.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "d3e0ee91-af28-4abd-91a2-a7659ce3179d", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, false, false, 45, [], 98, ~U[2026-03-10 22:51:53Z], ~U[2026-04-30 13:23:07Z], ~U[2026-04-30 13:23:07Z], "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, 45, ~U[2026-03-10 22:51:53Z]] 08:23:07.442 [debug] QUERY OK source="sources" db=0.1ms idle=58.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" = ?) [45] 08:23:07.442 [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] 08:23:07.442 [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 [2456354] 08:23:07.442 [debug] Current batch of media processed. Will check again in 1000ms 08:23:08.444 [debug] Current batch of media processed. Will check again in 1000ms 08:23:09.445 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 579, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", "id" => "QKzRf8B-oDk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QKzRf8B-oDk", "playlist_index" => 11, "timestamp" => 1772743952, "title" => "Online Age Checks Are Going Too Far", "upload_date" => "20260305"} 08:23:09.446 [debug] QUERY OK source="sources" db=0.2ms idle=258.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 (?)) [45] 08:23:09.446 [debug] QUERY OK source="sources" db=0.0ms idle=258.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" = ?) [45] 08:23:09.447 [debug] QUERY OK source="media_items" db=1.3ms idle=259.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 20:52:32Z], 45] 08:23:09.449 [debug] QUERY OK source="media_items" db=0.8ms idle=260.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "ef02a59e-e68d-4104-b5a5-77f7908e1402", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, false, false, 45, [], 98, ~U[2026-03-05 20:52:32Z], ~U[2026-04-30 13:23:09Z], ~U[2026-04-30 13:23:09Z], "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, 45, ~U[2026-03-05 20:52:32Z]] 08:23:09.449 [debug] QUERY OK source="sources" db=0.1ms idle=62.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" = ?) [45] 08:23:09.449 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:23:09.450 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2416737] 08:23:09.450 [debug] Current batch of media processed. Will check again in 1000ms 08:23:10.451 [debug] Current batch of media processed. Will check again in 1000ms 08:23:11.452 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 523, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", "id" => "GSRXY3_yeN4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GSRXY3_yeN4", "playlist_index" => 12, "timestamp" => 1772150862, "title" => "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "upload_date" => "20260227"} 08:23:11.452 [debug] QUERY OK source="sources" db=0.1ms idle=264.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 (?)) [45] 08:23:11.452 [debug] QUERY OK source="sources" db=0.1ms idle=265.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" = ?) [45] 08:23:11.454 [debug] QUERY OK source="media_items" db=1.4ms idle=265.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 00:07:42Z], 45] 08:23:11.455 [debug] QUERY OK source="media_items" db=1.0ms idle=267.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "55309449-0778-4f4f-a361-63e48b03766f", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, false, false, 45, [], 98, ~U[2026-02-27 00:07:42Z], ~U[2026-04-30 13:23:11Z], ~U[2026-04-30 13:23:11Z], "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, 45, ~U[2026-02-27 00:07:42Z]] 08:23:11.456 [debug] QUERY OK source="sources" db=0.1ms idle=65.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" = ?) [45] 08:23:11.456 [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] 08:23:11.456 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2363193] 08:23:11.456 [debug] Current batch of media processed. Will check again in 1000ms 08:23:12.458 [debug] Current batch of media processed. Will check again in 1000ms 08:23:13.459 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 511, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", "id" => "eRyOdsLaPKE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eRyOdsLaPKE", "playlist_index" => 13, "timestamp" => 1771971511, "title" => "Facebook Will Simulate Dead Users With AI", "upload_date" => "20260224"} 08:23:13.459 [debug] QUERY OK source="sources" db=0.1ms idle=272.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 (?)) [45] 08:23:13.459 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [45] 08:23:13.461 [debug] QUERY OK source="media_items" db=1.3ms idle=272.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-24 22:18:31Z], 45] 08:23:13.475 [debug] QUERY OK source="media_items" db=13.3ms idle=274.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "f3835a94-1763-4679-82f4-9f26175b4a4d", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, false, false, 45, [], 98, ~U[2026-02-24 22:18:31Z], ~U[2026-04-30 13:23:13Z], ~U[2026-04-30 13:23:13Z], "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, 45, ~U[2026-02-24 22:18:31Z]] 08:23:13.475 [debug] QUERY OK source="sources" db=0.2ms idle=82.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" = ?) [45] 08:23:13.475 [debug] QUERY OK source="media_profiles" db=0.2ms idle=16.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] 08:23:13.476 [debug] QUERY OK source="media_items" db=0.1ms idle=16.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 [2347026] 08:23:13.476 [debug] Current batch of media processed. Will check again in 1000ms 08:23:14.477 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 504, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", "id" => "uBibexTkY-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uBibexTkY-M", "playlist_index" => 14, "timestamp" => 1771548693, "title" => "Discord Will Be Used To Spy On You", "upload_date" => "20260220"} 08:23:14.477 [debug] QUERY OK source="sources" db=0.3ms idle=1002.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 (?)) [45] 08:23:14.478 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1002.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" = ?) [45] 08:23:14.479 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:51:33Z], 45] 08:23:14.484 [debug] QUERY OK source="media_items" db=4.4ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "04bc3973-da3c-4b9e-a78e-f0923577ed3d", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, false, false, 45, [], 98, ~U[2026-02-20 00:51:33Z], ~U[2026-04-30 13:23:14Z], ~U[2026-04-30 13:23:14Z], "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, 45, ~U[2026-02-20 00:51:33Z]] 08:23:14.485 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=91.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" = ?) [45] 08:23:14.485 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:23:14.486 [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 [2308517] 08:23:14.486 [debug] Current batch of media processed. Will check again in 1000ms 08:23:15.487 [debug] Current batch of media processed. Will check again in 1000ms 08:23:16.488 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 501, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", "id" => "MGisfDrdbGo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MGisfDrdbGo", "playlist_index" => 15, "timestamp" => 1771108411, "title" => "Chinese Hackers Hijack Notepad++ Updates", "upload_date" => "20260214"} 08:23:16.488 [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 (?)) [45] 08:23:16.488 [debug] QUERY OK source="sources" db=0.1ms idle=301.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" = ?) [45] 08:23:16.490 [debug] QUERY OK source="media_items" db=1.2ms idle=301.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 22:33:31Z], 45] 08:23:16.491 [debug] QUERY OK source="media_items" db=0.8ms idle=303.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "a505ccef-b745-4d21-bf41-23373f3695e8", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, false, false, 45, [], 98, ~U[2026-02-14 22:33:31Z], ~U[2026-04-30 13:23:16Z], ~U[2026-04-30 13:23:16Z], "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, 45, ~U[2026-02-14 22:33:31Z]] 08:23:16.491 [debug] QUERY OK source="sources" db=0.1ms idle=95.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" = ?) [45] 08:23:16.491 [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] 08:23:16.492 [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 [2268722] 08:23:16.492 [debug] Current batch of media processed. Will check again in 1000ms 08:23:17.493 [debug] Current batch of media processed. Will check again in 1000ms 08:23:18.494 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 540, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", "id" => "I2qjQawDqXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I2qjQawDqXs", "playlist_index" => 16, "timestamp" => 1770336498, "title" => "Stop Using BitLocker", "upload_date" => "20260206"} 08:23:18.494 [debug] QUERY OK source="sources" db=0.2ms idle=307.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 (?)) [45] 08:23:18.495 [debug] QUERY OK source="sources" db=0.1ms idle=307.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" = ?) [45] 08:23:18.496 [debug] QUERY OK source="media_items" db=1.3ms idle=307.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-06 00:08:18Z], 45] 08:23:18.497 [debug] QUERY OK source="media_items" db=0.7ms idle=309.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "9169dbb6-7f67-45e3-9799-3765febb1a21", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, false, false, 45, [], 98, ~U[2026-02-06 00:08:18Z], ~U[2026-04-30 13:23:18Z], ~U[2026-04-30 13:23:18Z], "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, 45, ~U[2026-02-06 00:08:18Z]] 08:23:18.497 [debug] QUERY OK source="sources" db=0.1ms idle=99.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" = ?) [45] 08:23:18.498 [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] 08:23:18.498 [debug] QUERY OK source="media_items" db=0.1ms 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 [2198703] 08:23:18.498 [debug] Current batch of media processed. Will check again in 1000ms 08:23:19.499 [debug] Current batch of media processed. Will check again in 1000ms 08:23:20.500 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 915, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", "id" => "aaTvRDsdy0s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aaTvRDsdy0s", "playlist_index" => 17, "timestamp" => 1769216799, "title" => "Photoshop Finally Works on Linux", "upload_date" => "20260124"} 08:23:20.500 [debug] QUERY OK source="sources" db=0.1ms idle=313.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 (?)) [45] 08:23:20.500 [debug] QUERY OK source="sources" db=0.1ms idle=313.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" = ?) [45] 08:23:20.502 [debug] QUERY OK source="media_items" db=1.3ms idle=313.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-24 01:06:39Z], 45] 08:23:20.503 [debug] QUERY OK source="media_items" db=0.7ms idle=315.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "2e6da037-3bf4-4112-8aa5-71943ec45efe", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, false, false, 45, [], 98, ~U[2026-01-24 01:06:39Z], ~U[2026-04-30 13:23:20Z], ~U[2026-04-30 13:23:20Z], "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, 45, ~U[2026-01-24 01:06:39Z]] 08:23:20.503 [debug] QUERY OK source="sources" db=0.1ms idle=103.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" = ?) [45] 08:23:20.504 [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] 08:23:20.504 [debug] QUERY OK source="media_items" db=0.1ms 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 [2095473] 08:23:20.504 [debug] Current batch of media processed. Will check again in 1000ms 08:23:21.505 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 659, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", "id" => "FyejToP1cjA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FyejToP1cjA", "playlist_index" => 18, "timestamp" => 1768678789, "title" => "TuxMate Makes Linux Desktop Setup a Breeze", "upload_date" => "20260117"} 08:23:21.505 [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" IN (?)) [45] 08:23:21.506 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 08:23:21.507 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-17 19:39:49Z], 45] 08:23:21.508 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "bcc21334-4469-4227-84fb-1758950da142", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, false, false, 45, [], 98, ~U[2026-01-17 19:39:49Z], ~U[2026-04-30 13:23:21Z], ~U[2026-04-30 13:23:21Z], "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, 45, ~U[2026-01-17 19:39:49Z]] 08:23:21.509 [debug] QUERY OK source="sources" db=0.1ms idle=107.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" = ?) [45] 08:23:21.509 [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] 08:23:21.509 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2045180] 08:23:21.509 [debug] Current batch of media processed. Will check again in 1000ms 08:23:22.511 [debug] Current batch of media processed. Will check again in 1000ms 08:23:23.512 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 651, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", "id" => "BgeLeT4CoyY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BgeLeT4CoyY", "playlist_index" => 19, "timestamp" => 1767652650, "title" => "CachyOS Is Coming For Your Server", "upload_date" => "20260105"} 08:23:23.512 [debug] QUERY OK source="sources" db=0.1ms idle=325.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 (?)) [45] 08:23:23.512 [debug] QUERY OK source="sources" db=0.0ms idle=325.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" = ?) [45] 08:23:23.514 [debug] QUERY OK source="media_items" db=1.2ms idle=325.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-05 22:37:30Z], 45] 08:23:23.515 [debug] QUERY OK source="media_items" db=0.8ms idle=327.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "25588e72-4701-4bf7-8391-7802b18b2f28", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, false, false, 45, [], 98, ~U[2026-01-05 22:37:30Z], ~U[2026-04-30 13:23:23Z], ~U[2026-04-30 13:23:23Z], "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, 45, ~U[2026-01-05 22:37:30Z]] 08:23:23.515 [debug] QUERY OK source="sources" db=0.1ms idle=111.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" = ?) [45] 08:23:23.515 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:23:23.516 [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 [1949827] 08:23:23.516 [debug] Current batch of media processed. Will check again in 1000ms 08:23:24.517 [debug] Current batch of media processed. Will check again in 1000ms 08:23:25.115 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/b2/6b/b26b7996a3449b7b3ca4540c409521125ba0a9b64b19c2692bb13d95f07cd044.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a7/a5/a7a58d6f550b042bb5c7a4d50a213e9363f1b8f7c8a566c5250db91b7b4c72be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 08:23:25.116 [debug] Gracefully stopping file follower 08:23:25.116 [debug] QUERY OK source="sources" db=0.3ms idle=1600.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 (?)) [45] 08:23:25.116 [debug] QUERY OK source="sources" db=0.2ms idle=1601.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" = ?) [45] 08:23:25.118 [debug] QUERY OK source="media_items" db=1.3ms idle=1601.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 01:19:29Z], 45] 08:23:25.119 [debug] QUERY OK source="media_items" db=0.8ms idle=1602.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "755e1b68-82cc-4e9c-8a08-41eb78708653", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2026-04-30 01:19:29Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, 45, ~U[2026-04-30 01:19:29Z]] 08:23:25.119 [debug] QUERY OK source="sources" db=0.2ms idle=713.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" = ?) [45] 08:23:25.121 [debug] QUERY OK source="media_items" db=1.2ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:27:16Z], 45] 08:23:25.122 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "15cd345f-b3f2-403a-8098-c5d2311dcab9", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, false, false, 45, [], 98, ~U[2026-04-25 17:27:16Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, 45, ~U[2026-04-25 17:27:16Z]] 08:23:25.122 [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" = ?) [45] 08:23:25.123 [debug] QUERY OK source="media_items" db=1.1ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 01:28:17Z], 45] 08:23:25.126 [debug] QUERY OK source="media_items" db=2.2ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "b66d64ad-9812-4c1c-b233-2b7784da6729", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, false, false, 45, [], 98, ~U[2026-04-18 01:28:17Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, 45, ~U[2026-04-18 01:28:17Z]] 08:23:25.126 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.127 [debug] QUERY OK source="media_items" db=1.0ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 00:29:00Z], 45] 08:23:25.128 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "e0b64987-ab99-4e6e-aa6d-56da1abb18c0", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, false, false, 45, [], 98, ~U[2026-04-14 00:29:00Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, 45, ~U[2026-04-14 00:29:00Z]] 08:23:25.129 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.130 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:02:04Z], 45] 08:23:25.131 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "387c60b7-452f-44df-9653-d06b34132e8b", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, false, false, 45, [], 98, ~U[2026-04-09 13:02:04Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, 45, ~U[2026-04-09 13:02:04Z]] 08:23:25.131 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 08:23:25.132 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 00:53:00Z], 45] 08:23:25.133 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "d996f347-f449-4bdc-8b24-a8317b4f4153", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, false, false, 45, [], 98, ~U[2026-04-01 00:53:00Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, 45, ~U[2026-04-01 00:53:00Z]] 08:23:25.133 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 08:23:25.135 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 21:58:52Z], 45] 08:23:25.136 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "176f1f14-0e21-4b00-a98d-104ef56a4612", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, false, false, 45, [], 98, ~U[2026-03-24 21:58:52Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, 45, ~U[2026-03-24 21:58:52Z]] 08:23:25.136 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.137 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-14 23:10:31Z], 45] 08:23:25.138 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "b081eb62-1011-4076-9672-bcf8f89584be", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, false, false, 45, [], 98, ~U[2026-03-14 23:10:31Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, 45, ~U[2026-03-14 23:10:31Z]] 08:23:25.138 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.140 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 16:23:29Z], 45] 08:23:25.140 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "fa74f69d-b3a4-46b3-833e-0d78d0786192", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, false, false, 45, [], 98, ~U[2026-03-12 16:23:29Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, 45, ~U[2026-03-12 16:23:29Z]] 08:23:25.141 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.142 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-10 22:51:53Z], 45] 08:23:25.143 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "928fd8e6-53c8-4a0b-a149-2295904ace9a", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, false, false, 45, [], 98, ~U[2026-03-10 22:51:53Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, 45, ~U[2026-03-10 22:51:53Z]] 08:23:25.143 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.144 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 20:52:32Z], 45] 08:23:25.145 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "20c1156d-250c-4bee-95bb-3d57ab9b4af7", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, false, false, 45, [], 98, ~U[2026-03-05 20:52:32Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, 45, ~U[2026-03-05 20:52:32Z]] 08:23:25.146 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 08:23:25.147 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 00:07:42Z], 45] 08:23:25.148 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "a567b8df-ae39-4430-acca-5bf33d03fbcf", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, false, false, 45, [], 98, ~U[2026-02-27 00:07:42Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, 45, ~U[2026-02-27 00:07:42Z]] 08:23:25.148 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 08:23:25.149 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-24 22:18:31Z], 45] 08:23:25.167 [debug] QUERY OK source="media_items" db=17.1ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "77f1f18b-8ac4-43fd-9d3c-6372e2b28de2", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, false, false, 45, [], 98, ~U[2026-02-24 22:18:31Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, 45, ~U[2026-02-24 22:18:31Z]] 08:23:25.167 [debug] QUERY OK source="sources" db=0.2ms idle=20.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" = ?) [45] 08:23:25.169 [debug] QUERY OK source="media_items" db=1.3ms idle=19.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:51:33Z], 45] 08:23:25.170 [debug] QUERY OK source="media_items" db=0.8ms idle=20.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "146f8e0f-b07e-4042-9e86-2434451182b5", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, false, false, 45, [], 98, ~U[2026-02-20 00:51:33Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, 45, ~U[2026-02-20 00:51:33Z]] 08:23:25.170 [debug] QUERY OK source="sources" db=0.2ms idle=20.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" = ?) [45] 08:23:25.172 [debug] QUERY OK source="media_items" db=1.1ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 22:33:31Z], 45] 08:23:25.173 [debug] QUERY OK source="media_items" db=0.8ms idle=4.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "723ce8a5-9a1d-4a5a-adfa-08cbdeb7d114", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, false, false, 45, [], 98, ~U[2026-02-14 22:33:31Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, 45, ~U[2026-02-14 22:33:31Z]] 08:23:25.173 [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" = ?) [45] 08:23:25.174 [debug] QUERY OK source="media_items" db=1.0ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-06 00:08:18Z], 45] 08:23:25.175 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "ae62687b-222c-47dd-a559-10f0ee528830", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, false, false, 45, [], 98, ~U[2026-02-06 00:08:18Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, 45, ~U[2026-02-06 00:08:18Z]] 08:23:25.175 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.177 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-24 01:06:39Z], 45] 08:23:25.178 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "012bc5c8-8492-4056-99aa-db1c903eab78", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, false, false, 45, [], 98, ~U[2026-01-24 01:06:39Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, 45, ~U[2026-01-24 01:06:39Z]] 08:23:25.178 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.179 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-17 19:39:49Z], 45] 08:23:25.180 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "c210b063-e438-41b9-ae8e-c7033eb35714", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, false, false, 45, [], 98, ~U[2026-01-17 19:39:49Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, 45, ~U[2026-01-17 19:39:49Z]] 08:23:25.180 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 08:23:25.182 [debug] QUERY OK source="media_items" db=1.2ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-05 22:37:30Z], 45] 08:23:25.183 [debug] QUERY OK source="media_items" db=0.8ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "ed661d36-f84b-4501-b55e-2827311effcf", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, false, false, 45, [], 98, ~U[2026-01-05 22:37:30Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, 45, ~U[2026-01-05 22:37:30Z]] 08:23:25.183 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [45] 08:23:25.185 [debug] QUERY OK source="media_items" db=1.1ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 00:38:26Z], 45] 08:23:25.186 [debug] QUERY OK source="media_items" db=0.7ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "61d233a1-46b0-4b0d-b58e-5540910545e6", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, false, 45, [], 98, ~U[2025-12-25 00:38:26Z], ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], "In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, 45, ~U[2025-12-25 00:38:26Z]] 08:23:25.186 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z], 45] 08:23:25.187 [debug] QUERY OK source="media_items" db=1.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 ((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")))) [45] 08:23:25.189 [debug] QUERY OK source="media_items" db=1.1ms idle=4.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")))) [45] 08:23:25.189 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 08:23:25.190 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300582, 45, ~U[2026-04-30 13:23:25Z], ~U[2026-04-30 13:23:25Z]] 08:23:25.190 [info] {"args":{"id":45},"id":300496,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":47836854,"event":"job:stop","queue_time":967339,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:23:35.904 [info] {"source":"oban","duration":3804,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:24:00.796 [info] {"source":"oban","duration":140,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:24:05.909 [info] {"source":"oban","duration":4263,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:24:35.912 [info] {"source":"oban","duration":2447,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:00.797 [info] {"source":"oban","duration":173,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:25:05.915 [info] {"source":"oban","duration":2343,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:16.324 [info] GET /sources/9/media/6885 08:25:16.324 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6885", "source_id" => "9"} Pipelines: [:browser] 08:25:16.324 [debug] QUERY OK source="media_items" db=0.2ms idle=1137.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" = ?) [6885] 08:25:16.325 [debug] QUERY OK source="tasks" db=0.1ms idle=1137.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" [6885] 08:25:16.325 [debug] QUERY OK source="sources" db=0.2ms idle=1137.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" = ?) [9] 08:25:16.325 [debug] QUERY OK source="settings" db=0.0ms idle=1138.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:16.325 [debug] QUERY OK source="settings" db=0.0ms idle=792.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 [] 08:25:16.326 [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 [] 08:25:16.326 [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] 08:25:16.327 [info] Sent 200 in 3ms 08:25:16.826 [info] GET /sources/9/media/6877 08:25:16.826 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6877", "source_id" => "9"} Pipelines: [:browser] 08:25:16.826 [debug] QUERY OK source="media_items" db=0.1ms idle=500.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" = ?) [6877] 08:25:16.827 [debug] QUERY OK source="tasks" db=0.0ms idle=501.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" [6877] 08:25:16.827 [debug] QUERY OK source="sources" db=0.1ms idle=500.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" = ?) [9] 08:25:16.827 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:25:16.827 [debug] QUERY OK source="settings" db=0.0ms idle=292.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:16.827 [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 [] 08:25:16.828 [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] 08:25:16.829 [info] Sent 200 in 3ms 08:25:35.918 [info] {"source":"oban","duration":2356,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:52.690 [info] GET /sources/9/media/2662811 08:25:52.690 [info] GET /sources/9/media/6886 08:25:52.690 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6886", "source_id" => "9"} Pipelines: [:browser] 08:25:52.690 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2662811", "source_id" => "9"} Pipelines: [:browser] 08:25:52.690 [debug] QUERY OK source="media_items" db=0.4ms idle=1112.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" = ?) [6886] 08:25:52.691 [debug] QUERY OK source="media_items" db=0.4ms idle=503.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" = ?) [2662811] 08:25:52.691 [debug] QUERY OK source="tasks" db=0.1ms idle=504.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" [2662811] 08:25:52.691 [debug] QUERY OK source="tasks" db=0.2ms idle=504.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" [6886] 08:25:52.691 [debug] QUERY OK source="sources" db=0.5ms idle=111.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" = ?) [9] 08:25:52.691 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [9] 08:25:52.692 [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 [] 08:25:52.692 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:25:52.692 [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 [] 08:25:52.692 [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 [] 08:25:52.692 [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 [] 08:25:52.693 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:25:52.693 [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] 08:25:52.693 [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] 08:25:52.694 [info] Sent 200 in 4ms 08:25:52.694 [info] Sent 200 in 4ms 08:25:53.176 [info] GET /sources/9/media/6878 08:25:53.177 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6878", "source_id" => "9"} Pipelines: [:browser] 08:25:53.177 [debug] QUERY OK source="media_items" db=0.1ms idle=484.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" = ?) [6878] 08:25:53.177 [debug] QUERY OK source="tasks" db=0.1ms idle=484.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" [6878] 08:25:53.178 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [9] 08:25:53.178 [debug] QUERY OK source="settings" db=0.0ms idle=484.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:53.178 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:25:53.178 [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 [] 08:25:53.179 [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] 08:25:53.180 [info] Sent 200 in 3ms 08:25:53.682 [info] GET /sources/9/media/6881 08:25:53.682 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6881", "source_id" => "9"} Pipelines: [:browser] 08:25:53.683 [debug] QUERY OK source="media_items" db=0.1ms idle=504.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" = ?) [6881] 08:25:53.683 [debug] QUERY OK source="tasks" db=0.1ms idle=504.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" [6881] 08:25:53.683 [debug] QUERY OK source="sources" db=0.1ms idle=504.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" = ?) [9] 08:25:53.683 [debug] QUERY OK source="settings" db=0.1ms idle=504.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:53.684 [debug] QUERY OK source="settings" db=0.0ms idle=102.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:53.684 [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 [] 08:25:53.684 [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] 08:25:53.685 [info] Sent 200 in 3ms 08:25:54.178 [info] GET /sources/9/media/6887 08:25:54.178 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6887", "source_id" => "9"} Pipelines: [:browser] 08:25:54.178 [debug] QUERY OK source="media_items" db=0.1ms idle=494.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" = ?) [6887] 08:25:54.179 [debug] QUERY OK source="tasks" db=0.1ms idle=494.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" [6887] 08:25:54.179 [debug] QUERY OK source="sources" db=0.3ms idle=494.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" = ?) [9] 08:25:54.179 [debug] QUERY OK source="settings" db=0.0ms idle=495.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:54.179 [debug] QUERY OK source="settings" db=0.0ms idle=494.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:54.180 [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 [] 08:25:54.180 [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] 08:25:54.181 [info] Sent 200 in 3ms 08:25:54.677 [info] GET /sources/9/media/6882 08:25:54.678 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6882", "source_id" => "9"} Pipelines: [:browser] 08:25:54.678 [debug] QUERY OK source="media_items" db=0.2ms idle=498.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" = ?) [6882] 08:25:54.678 [debug] QUERY OK source="tasks" db=0.1ms idle=498.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" [6882] 08:25:54.679 [debug] QUERY OK source="sources" db=0.2ms idle=498.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" = ?) [9] 08:25:54.679 [debug] QUERY OK source="settings" db=0.0ms idle=498.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:54.679 [debug] QUERY OK source="settings" db=0.0ms idle=96.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:54.679 [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 [] 08:25:54.680 [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] 08:25:54.681 [info] Sent 200 in 3ms 08:25:55.179 [info] GET /sources/9/media/6875 08:25:55.179 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6875", "source_id" => "9"} Pipelines: [:browser] 08:25:55.179 [debug] QUERY OK source="media_items" db=0.2ms idle=500.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" = ?) [6875] 08:25:55.180 [debug] QUERY OK source="tasks" db=0.1ms idle=500.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" [6875] 08:25:55.180 [debug] QUERY OK source="sources" db=0.1ms idle=500.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" = ?) [9] 08:25:55.180 [debug] QUERY OK source="settings" db=0.0ms idle=500.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 [] 08:25:55.180 [debug] QUERY OK source="settings" db=0.0ms idle=499.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:55.180 [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 [] 08:25:55.181 [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] 08:25:55.182 [info] Sent 200 in 3ms 08:25:55.679 [info] GET /sources/9/media/6884 08:25:55.680 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6884", "source_id" => "9"} Pipelines: [:browser] 08:25:55.680 [debug] QUERY OK source="media_items" db=0.1ms idle=499.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" = ?) [6884] 08:25:55.680 [debug] QUERY OK source="tasks" db=0.1ms idle=500.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" [6884] 08:25:55.680 [debug] QUERY OK source="sources" db=0.2ms idle=499.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" = ?) [9] 08:25:55.681 [debug] QUERY OK source="settings" db=0.0ms idle=499.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:55.681 [debug] QUERY OK source="settings" db=0.0ms idle=97.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:55.681 [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 [] 08:25:55.681 [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] 08:25:55.682 [info] Sent 200 in 2ms 08:26:00.798 [info] {"source":"oban","duration":403,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:26:05.921 [info] {"source":"oban","duration":2432,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:26:33.078 [info] GET /sources/46/media/2403321/force_download 08:26:33.079 [debug] QUERY OK source="settings" db=0.1ms idle=1892.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:33.079 [debug] QUERY OK source="settings" db=0.0ms idle=1892.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 [] 08:26:33.079 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:33.079 [error] #PID<0.188990.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2403321/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/46/media/2403321/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2403321/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188990.0>, params: %{}, path_info: ["sources", "46", "media", "2403321", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2403321/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZN35CfoEo7QAUU2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2403321/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2403321/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2403321/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188990.0>, params: %{}, path_info: ["sources", "46", "media", "2403321", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:33.110 [info] GET /sources/52/media/2021070/force_download 08:26:33.110 [debug] QUERY OK source="settings" db=0.1ms idle=1923.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 [] 08:26:33.110 [debug] QUERY OK source="settings" db=0.0ms idle=1471.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 [] 08:26:33.111 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:33.111 [error] #PID<0.188991.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2021070/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/52/media/2021070/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2021070/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188991.0>, params: %{}, path_info: ["sources", "52", "media", "2021070", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2021070/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZN_YXHL36DkAR2rC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2021070/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2021070/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2021070/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188991.0>, params: %{}, path_info: ["sources", "52", "media", "2021070", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:33.620 [info] GET /sources/45/media/2565295/force_download 08:26:33.621 [debug] QUERY OK source="settings" db=0.1ms idle=979.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:33.621 [debug] QUERY OK source="settings" db=0.1ms idle=542.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:33.621 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:33.621 [error] #PID<0.188992.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2565295/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/45/media/2565295/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2565295/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188992.0>, params: %{}, path_info: ["sources", "45", "media", "2565295", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2565295/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZP5GfwljqvwAR2sC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2565295/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2565295/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2565295/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188992.0>, params: %{}, path_info: ["sources", "45", "media", "2565295", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:34.122 [info] GET /sources/30/media/2571132/force_download 08:26:34.122 [debug] QUERY OK source="settings" db=0.1ms idle=1011.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:34.122 [debug] QUERY OK source="settings" db=0.1ms idle=1011.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:34.123 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:34.123 [error] #PID<0.188993.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2571132/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/30/media/2571132/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2571132/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188993.0>, params: %{}, path_info: ["sources", "30", "media", "2571132", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2571132/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZRwn-SwxgdcAR2tC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2571132/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2571132/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2571132/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188993.0>, params: %{}, path_info: ["sources", "30", "media", "2571132", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:34.621 [info] GET /sources/30/media/2808334/force_download 08:26:34.621 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:26:34.622 [debug] QUERY OK source="settings" db=0.0ms idle=1000.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:34.622 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:34.622 [error] #PID<0.188994.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2808334/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/30/media/2808334/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2808334/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188994.0>, params: %{}, path_info: ["sources", "30", "media", "2808334", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2808334/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZTnpXGd3AkgAR2uC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2808334/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2808334/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2808334/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188994.0>, params: %{}, path_info: ["sources", "30", "media", "2808334", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:35.122 [info] GET /sources/30/media/2548032/force_download 08:26:35.123 [debug] QUERY OK source="settings" db=0.2ms idle=1000.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 [] 08:26:35.123 [debug] QUERY OK source="settings" db=0.0ms idle=1000.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 [] 08:26:35.123 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:35.123 [error] #PID<0.188995.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2548032/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/30/media/2548032/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2548032/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188995.0>, params: %{}, path_info: ["sources", "30", "media", "2548032", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2548032/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZVfLNTdrJosAR2vC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2548032/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2548032/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2548032/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.188995.0>, params: %{}, path_info: ["sources", "30", "media", "2548032", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:35.623 [info] GET /sources/9/media/6877/edit 08:26:35.623 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "6877", "source_id" => "9"} Pipelines: [:browser] 08:26:35.623 [debug] QUERY OK source="media_items" db=0.2ms idle=1001.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" = ?) [6877] 08:26:35.623 [debug] QUERY OK source="settings" db=0.0ms idle=1001.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:35.624 [debug] QUERY OK source="settings" db=0.1ms idle=979.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:35.624 [debug] QUERY OK source="settings" db=0.0ms idle=501.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 [] 08:26:35.625 [info] Sent 200 in 2ms 08:26:35.924 [info] {"source":"oban","duration":2984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:26:36.125 [info] GET /sources/55/media/2620432 08:26:36.125 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2620432", "source_id" => "55"} Pipelines: [:browser] 08:26:36.125 [debug] QUERY OK source="media_items" db=0.2ms idle=501.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" = ?) [2620432] 08:26:36.126 [debug] QUERY OK source="tasks" db=0.1ms idle=501.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" [2620432] 08:26:36.126 [debug] QUERY OK source="sources" db=0.1ms idle=501.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" = ?) [55] 08:26:36.126 [debug] QUERY OK source="settings" db=0.1ms idle=481.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:36.126 [debug] QUERY OK source="settings" db=0.0ms idle=201.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:36.127 [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 [] 08:26:36.127 [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] 08:26:36.128 [info] Sent 200 in 3ms 08:26:38.411 [info] GET /sources/52/media/2829879/force_download 08:26:38.412 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:26:38.412 [debug] QUERY OK source="settings" db=0.0ms idle=1225.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 [] 08:26:38.412 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:38.412 [error] #PID<0.189001.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 9) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2829879/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/52/media/2829879/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2829879/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189001.0>, params: %{}, path_info: ["sources", "52", "media", "2829879", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2829879/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZhvYN3vnNX4AR2zC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2829879/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2829879/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2829879/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189001.0>, params: %{}, path_info: ["sources", "52", "media", "2829879", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:38.418 [info] GET /sources/30/media/2823571/force_download 08:26:38.419 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:26:38.419 [debug] QUERY OK source="settings" db=0.0ms idle=1231.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:38.419 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:38.419 [error] #PID<0.189002.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 10) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2823571/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/30/media/2823571/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2823571/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189002.0>, params: %{}, path_info: ["sources", "30", "media", "2823571", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2823571/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZhxCLJOqHsYAR20C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2823571/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2823571/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2823571/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189002.0>, params: %{}, path_info: ["sources", "30", "media", "2823571", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:38.920 [info] GET /sources/27/media/1176465/force_download 08:26:38.921 [debug] QUERY OK source="settings" db=0.1ms idle=508.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 [] 08:26:38.921 [debug] QUERY OK source="settings" db=0.1ms idle=508.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 [] 08:26:38.921 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:38.921 [error] #PID<0.189003.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 11) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/1176465/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/27/media/1176465/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1176465/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189003.0>, params: %{}, path_info: ["sources", "27", "media", "1176465", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/1176465/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZjooZcZ5q3kAR21C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1176465/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/1176465/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1176465/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189003.0>, params: %{}, path_info: ["sources", "27", "media", "1176465", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:39.417 [info] GET /sources/52/media/2115775/force_download 08:26:39.418 [debug] QUERY OK source="settings" db=0.2ms idle=999.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:39.418 [debug] QUERY OK source="settings" db=0.0ms idle=999.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 [] 08:26:39.418 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:39.419 [error] #PID<0.189004.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 12) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2115775/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/52/media/2115775/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2115775/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189004.0>, params: %{}, path_info: ["sources", "52", "media", "2115775", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2115775/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZlfObkp-mVIAR22C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2115775/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2115775/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2115775/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189004.0>, params: %{}, path_info: ["sources", "52", "media", "2115775", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:39.919 [info] GET /sources/27/media/2406609/force_download 08:26:39.919 [debug] QUERY OK source="settings" db=0.1ms idle=998.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 [] 08:26:39.919 [debug] QUERY OK source="settings" db=0.1ms idle=998.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:39.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:39.920 [error] #PID<0.189005.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 13) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2406609/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/27/media/2406609/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2406609/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189005.0>, params: %{}, path_info: ["sources", "27", "media", "2406609", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2406609/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZnWwz8eDS2wAR23C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2406609/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2406609/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2406609/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189005.0>, params: %{}, path_info: ["sources", "27", "media", "2406609", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:40.420 [info] GET /sources/27/media/2779704/force_download 08:26:40.421 [debug] QUERY OK source="settings" db=0.1ms idle=1002.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:40.421 [debug] QUERY OK source="settings" db=0.0ms idle=1002.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:40.421 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:40.421 [error] #PID<0.189006.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 14) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2779704/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/27/media/2779704/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2779704/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189006.0>, params: %{}, path_info: ["sources", "27", "media", "2779704", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2779704/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZpOXLh5-erQAR24C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2779704/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2779704/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2779704/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189006.0>, params: %{}, path_info: ["sources", "27", "media", "2779704", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:45.422 [info] GET /sources/43/media/2783182/force_download 08:26:45.422 [debug] QUERY OK source="settings" db=0.1ms idle=1235.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 [] 08:26:45.422 [debug] QUERY OK source="settings" db=0.0ms idle=1235.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:45.423 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:45.423 [error] #PID<0.189008.0> running PinchflatWeb.Endpoint (connection #PID<0.188989.0>, stream id 15) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2783182/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/43/media/2783182/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2783182/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189008.0>, params: %{}, path_info: ["sources", "43", "media", "2783182", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2783182/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslZ72y6mFL848AR25C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2783182/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2783182/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188989.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2783182/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36924}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189008.0>, params: %{}, path_info: ["sources", "43", "media", "2783182", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 08:26:54.339 [info] GET /sources/45/media/2619987/force_download 08:26:54.339 [debug] QUERY OK source="settings" db=0.1ms idle=1152.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:54.340 [debug] QUERY OK source="settings" db=0.0ms idle=1153.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:54.340 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:54.340 [error] #PID<0.189010.0> running PinchflatWeb.Endpoint (connection #PID<0.189009.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2619987/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/45/media/2619987/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2619987/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189010.0>, params: %{}, path_info: ["sources", "45", "media", "2619987", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2619987/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsladE1EgwGfS4AR26C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2619987/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2619987/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2619987/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189010.0>, params: %{}, path_info: ["sources", "45", "media", "2619987", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:26:54.830 [info] GET /sources/9/media/2722514/force_download 08:26:54.830 [debug] QUERY OK source="settings" db=0.1ms idle=1643.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 [] 08:26:54.830 [debug] QUERY OK source="settings" db=0.1ms idle=1162.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:54.830 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:26:54.831 [error] #PID<0.189011.0> running PinchflatWeb.Endpoint (connection #PID<0.189009.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2722514/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/9/media/2722514/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2722514/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189011.0>, params: %{}, path_info: ["sources", "9", "media", "2722514", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2722514/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslae5y3bQAqGYAR27C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2722514/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2722514/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189009.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2722514/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34390}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189011.0>, params: %{}, path_info: ["sources", "9", "media", "2722514", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 08:27:00.800 [info] {"source":"oban","duration":220,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:27:01.564 [info] GET /sources/46/media/2566270/force_download 08:27:01.565 [debug] QUERY OK source="settings" db=0.1ms idle=1377.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 [] 08:27:01.565 [debug] QUERY OK source="settings" db=0.0ms idle=1377.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:01.565 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:01.565 [error] #PID<0.189015.0> running PinchflatWeb.Endpoint (connection #PID<0.189014.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2566270/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/46/media/2566270/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189014.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2566270/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40558}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189015.0>, params: %{}, path_info: ["sources", "46", "media", "2566270", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2566270/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsla3_bGY-FDEkAUU4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189014.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2566270/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40558}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2566270/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189014.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2566270/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40558}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189015.0>, params: %{}, path_info: ["sources", "46", "media", "2566270", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:05.930 [info] {"source":"oban","duration":4543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:08.219 [info] GET /sources/43/media/2591930/force_download 08:27:08.220 [debug] QUERY OK source="settings" db=0.1ms idle=1033.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:08.220 [debug] QUERY OK source="settings" db=0.1ms idle=1033.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 [] 08:27:08.220 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:08.220 [error] #PID<0.189017.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2591930/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/43/media/2591930/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2591930/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189017.0>, params: %{}, path_info: ["sources", "43", "media", "2591930", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2591930/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslbQyKdNSXKygAUU5B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2591930/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2591930/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2591930/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189017.0>, params: %{}, path_info: ["sources", "43", "media", "2591930", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:10.841 [info] GET /sources/43/media/2623806/force_download 08:27:10.842 [debug] QUERY OK source="settings" db=0.2ms idle=1150.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:10.842 [debug] QUERY OK source="settings" db=0.0ms idle=655.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:10.843 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:10.843 [error] #PID<0.189018.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2623806/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/43/media/2623806/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2623806/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189018.0>, params: %{}, path_info: ["sources", "43", "media", "2623806", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2623806/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslbajUgb8nwkIAR29C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2623806/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2623806/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2623806/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189018.0>, params: %{}, path_info: ["sources", "43", "media", "2623806", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:15.843 [info] GET /sources/27/media/2539190/force_download 08:27:15.843 [debug] QUERY OK source="settings" db=0.1ms idle=1656.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:15.844 [debug] QUERY OK source="settings" db=0.0ms idle=1656.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:15.844 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:15.844 [error] #PID<0.189019.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2539190/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/27/media/2539190/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2539190/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189019.0>, params: %{}, path_info: ["sources", "27", "media", "2539190", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2539190/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslbtLwitTSuX0AR2-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.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2539190/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2539190/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2539190/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189019.0>, params: %{}, path_info: ["sources", "27", "media", "2539190", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:20.844 [info] GET /sources/52/media/2737698/force_download 08:27:20.845 [debug] QUERY OK source="settings" db=0.1ms idle=1658.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:20.845 [debug] QUERY OK source="settings" db=0.0ms idle=1138.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:20.845 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:20.845 [error] #PID<0.189020.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2737698/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/52/media/2737698/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2737698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189020.0>, params: %{}, path_info: ["sources", "52", "media", "2737698", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2737698/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslb_0Mqd3m-3cAR2_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.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2737698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2737698/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2737698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189020.0>, params: %{}, path_info: ["sources", "52", "media", "2737698", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:25.847 [info] GET /sources/30/media/2594513/force_download 08:27:25.848 [debug] QUERY OK source="settings" db=0.1ms idle=1661.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:25.848 [debug] QUERY OK source="settings" db=0.1ms idle=1661.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 [] 08:27:25.848 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:25.848 [error] #PID<0.189021.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2594513/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/30/media/2594513/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2594513/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189021.0>, params: %{}, path_info: ["sources", "30", "media", "2594513", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2594513/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslcSdBSitoZngAR3AC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2594513/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2594513/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2594513/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189021.0>, params: %{}, path_info: ["sources", "30", "media", "2594513", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:30.847 [info] GET /sources/52/media/2029187/force_download 08:27:30.848 [debug] QUERY OK source="settings" db=0.2ms idle=1660.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:30.848 [debug] QUERY OK source="settings" db=0.1ms idle=1129.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:30.848 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:30.848 [error] #PID<0.189024.0> running PinchflatWeb.Endpoint (connection #PID<0.189016.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2029187/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/52/media/2029187/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2029187/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189024.0>, params: %{}, path_info: ["sources", "52", "media", "2029187", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2029187/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslclFDKHJgCG8AR3BC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2029187/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2029187/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189016.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2029187/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40572}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189024.0>, params: %{}, path_info: ["sources", "52", "media", "2029187", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:35.933 [info] {"source":"oban","duration":2858,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:36.936 [info] GET /sources/43/media/2718633/force_download 08:27:36.936 [debug] QUERY OK source="settings" db=0.1ms idle=1002.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:36.936 [debug] QUERY OK source="settings" db=0.0ms idle=749.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:36.936 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:36.937 [error] #PID<0.189026.0> running PinchflatWeb.Endpoint (connection #PID<0.189025.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2718633/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/43/media/2718633/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2718633/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189026.0>, params: %{}, path_info: ["sources", "43", "media", "2718633", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2718633/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslc7wq3Ng3cc0AUU7B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2718633/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2718633/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2718633/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189026.0>, params: %{}, path_info: ["sources", "43", "media", "2718633", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:41.421 [info] GET /sources/25/media/2673635/force_download 08:27:41.421 [debug] QUERY OK source="settings" db=0.1ms idle=1234.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 [] 08:27:41.421 [debug] QUERY OK source="settings" db=0.0ms idle=1234.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:41.422 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:41.422 [error] #PID<0.189027.0> running PinchflatWeb.Endpoint (connection #PID<0.189025.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/25/media/2673635/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/25/media/2673635/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2673635/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189027.0>, params: %{}, path_info: ["sources", "25", "media", "2673635", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/media/2673635/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsldMd9wwGM2rgAR3CC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2673635/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/25/media/2673635/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189025.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2673635/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53680}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189027.0>, params: %{}, path_info: ["sources", "25", "media", "2673635", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:46.429 [info] GET /sources/43/media/2767301/force_download 08:27:46.429 [debug] QUERY OK source="settings" db=0.1ms idle=1242.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 [] 08:27:46.429 [debug] QUERY OK source="settings" db=0.1ms idle=1242.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:46.429 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:46.430 [error] #PID<0.189030.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2767301/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/43/media/2767301/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2767301/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189030.0>, params: %{}, path_info: ["sources", "43", "media", "2767301", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2767301/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsldfH8fD8goWUAR3DC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2767301/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2767301/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2767301/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189030.0>, params: %{}, path_info: ["sources", "43", "media", "2767301", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:51.428 [info] GET /sources/25/media/2414606/force_download 08:27:51.429 [debug] QUERY OK source="settings" db=0.2ms idle=1241.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 [] 08:27:51.429 [debug] QUERY OK source="settings" db=0.1ms idle=1241.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:51.429 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:51.429 [error] #PID<0.189031.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/25/media/2414606/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/25/media/2414606/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2414606/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189031.0>, params: %{}, path_info: ["sources", "25", "media", "2414606", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/media/2414606/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsldxv4QxVCkdAAR3EC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2414606/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/25/media/2414606/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2414606/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189031.0>, params: %{}, path_info: ["sources", "25", "media", "2414606", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:54.761 [info] {"args":{"id":52},"id":300580,"meta":{},"system_time":1777555674761385868,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:27:54.761 [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" = ?) [52] 08:27:54.762 [debug] QUERY OK source="settings" db=0.1ms idle=574.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:54.762 [debug] QUERY OK source="media_profiles" db=0.1ms idle=575.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] 08:27:54.762 [debug] QUERY OK source="settings" db=0.2ms idle=8.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 [] 08:27:54.762 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 08:27:55.098 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:27:55.099 [debug] QUERY OK source="media_items" db=0.4ms idle=337.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:27:55.099 [debug] QUERY OK source="settings" db=0.1ms idle=337.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:55.099 [debug] QUERY OK source="settings" db=0.0ms idle=337.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:55.099 [debug] Running yt-dlp command for action: get_media_attributes 08:27:55.101 [debug] QUERY OK source="settings" db=0.1ms idle=339.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 [] 08:27:55.102 [debug] QUERY OK source="settings" db=0.0ms idle=339.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:55.102 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:27:55.102 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/d0/6d/d06d0d70abbce8519465b315907ff3558c22a2a246288b3fe12873617ad56180.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:27:56.430 [info] GET /sources/30/media/2816002/force_download 08:27:56.431 [debug] QUERY OK source="settings" db=0.1ms idle=675.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 [] 08:27:56.431 [debug] QUERY OK source="settings" db=0.0ms idle=244.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:27:56.431 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:27:56.431 [error] #PID<0.189039.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2816002/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/30/media/2816002/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2816002/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189039.0>, params: %{}, path_info: ["sources", "30", "media", "2816002", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2816002/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsleEYe1Ugi9qcAR3GC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2816002/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2816002/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2816002/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189039.0>, params: %{}, path_info: ["sources", "30", "media", "2816002", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:27:56.779 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/d0/6d/d06d0d70abbce8519465b315907ff3558c22a2a246288b3fe12873617ad56180.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 08:27:56.779 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 08:27:56.780 [debug] QUERY OK source="media_items" db=0.6ms idle=592.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 ((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")))) [52] 08:27:56.782 [debug] QUERY OK source="tasks" db=0.1ms idle=351.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300583, 1301334, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.785 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300584, 1301335, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.787 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300585, 1301347, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.789 [info] {"args":{"id":1301334},"id":300583,"meta":{},"system_time":1777555676789238917,"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"]} 08:27:56.789 [info] {"args":{"id":1301335},"id":300584,"meta":{},"system_time":1777555676789273674,"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"]} 08:27:56.790 [debug] QUERY OK source="media_items" db=0.5ms 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 WHERE (m0."id" = ?) [1301335] 08:27:56.790 [debug] QUERY OK source="media_items" db=0.6ms idle=2.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" = ?) [1301334] 08:27:56.790 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:27:56.790 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:27:56.790 [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" = ?) [52] 08:27:56.790 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [52] 08:27:56.791 [debug] QUERY OK source="tasks" db=0.6ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300586, 1301392, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.791 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:27:56.791 [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] 08:27:56.791 [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 [1301335] 08:27:56.792 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301334] 08:27:56.793 [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" = ?) [1301335] 08:27:56.793 [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] 08:27:56.793 [debug] QUERY OK source="tasks" db=0.2ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300587, 1301393, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.794 [debug] QUERY OK source="settings" db=0.4ms 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 [] 08:27:56.794 [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 [] 08:27:56.794 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301334] 08:27:56.794 [debug] Running yt-dlp command for action: get_downloadable_status 08:27:56.794 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:27:56.796 [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 [] 08:27:56.796 [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 [] 08:27:56.796 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300588, 1301394, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.796 [debug] Running yt-dlp command for action: get_downloadable_status 08:27:56.796 [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 [] 08:27:56.797 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:27:56.797 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:27:56.797 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:27:56.797 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/88/c8/88c8e434974c2746eb7224964fe5e191f48b93add6c9228e1dc831ed268d9613.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:27:56.797 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:27:56.798 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:27:56.798 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/5f/ec5f47d5878e63ea9c7ec580c1e7779b5c4f32f67a3aaa9fee81cb8ec465c113.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:27:56.799 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300589, 1301395, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.802 [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" [300590, 1301397, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.804 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300591, 1301398, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.806 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300592, 1301399, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.808 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300593, 1301400, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.810 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300594, 2720968, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.811 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300595, 52, ~U[2026-04-30 13:27:56Z], ~U[2026-04-30 13:27:56Z]] 08:27:56.812 [info] {"args":{"id":52},"id":300580,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2050350,"event":"job:stop","queue_time":880628,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:27:58.558 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/5f/ec5f47d5878e63ea9c7ec580c1e7779b5c4f32f67a3aaa9fee81cb8ec465c113.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:27:58.559 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:27:58.559 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:27:58.559 [info] {"args":{"id":1301334},"id":300583,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1769912,"event":"job:stop","queue_time":787902,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:27:58.565 [info] {"args":{"id":1301347},"id":300585,"meta":{},"system_time":1777555678565755790,"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"]} 08:27:58.566 [debug] QUERY OK source="media_items" db=0.1ms idle=378.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" = ?) [1301347] 08:27:58.566 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:27:58.566 [debug] QUERY OK source="sources" db=0.1ms idle=379.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" = ?) [52] 08:27:58.566 [debug] QUERY OK source="media_profiles" db=0.1ms idle=379.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] 08:27:58.567 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301347] 08:27:58.568 [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" = ?) [1301347] 08:27:58.568 [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] 08:27:58.569 [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 [] 08:27:58.569 [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 [] 08:27:58.569 [debug] Running yt-dlp command for action: get_downloadable_status 08:27:58.570 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:27:58.570 [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 [] 08:27:58.570 [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 [] 08:27:58.570 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5c/39/5c394fb8733713c5dcd24ff7c5755cf50fe0e7e4f5ece321c7478a91f17b9024.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:27:58.596 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/88/c8/88c8e434974c2746eb7224964fe5e191f48b93add6c9228e1dc831ed268d9613.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:27:58.596 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:27:58.597 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:27:58.597 [info] {"args":{"id":1301335},"id":300584,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1807836,"event":"job:stop","queue_time":787902,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:27:58.603 [info] {"args":{"id":1301392},"id":300586,"meta":{},"system_time":1777555678603473038,"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"]} 08:27:58.603 [debug] QUERY OK source="media_items" db=0.1ms idle=33.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" = ?) [1301392] 08:27:58.603 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:27:58.604 [debug] QUERY OK source="sources" db=0.1ms idle=33.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" = ?) [52] 08:27:58.604 [debug] QUERY OK source="media_profiles" db=0.1ms idle=33.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] 08:27:58.604 [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 [1301392] 08:27:58.606 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 08:27:58.606 [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] 08:27:58.606 [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 [] 08:27:58.606 [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 [] 08:27:58.606 [debug] Running yt-dlp command for action: get_downloadable_status 08:27:58.607 [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 [] 08:27:58.607 [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 [] 08:27:58.607 [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 [] 08:27:58.607 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2b/44/2b44bdd33cb650be2ac2552d879185cb82b1aa99410fbfc0d3739abaea872bca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:00.272 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5c/39/5c394fb8733713c5dcd24ff7c5755cf50fe0e7e4f5ece321c7478a91f17b9024.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:00.272 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:00.272 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:00.273 [info] {"args":{"id":1301347},"id":300585,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1706828,"event":"job:stop","queue_time":2564972,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:00.279 [info] {"args":{"id":1301393},"id":300587,"meta":{},"system_time":1777555680279549782,"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"]} 08:28:00.279 [debug] QUERY OK source="media_items" db=0.1ms idle=92.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" = ?) [1301393] 08:28:00.280 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:00.280 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 08:28:00.280 [debug] QUERY OK source="media_profiles" db=0.1ms idle=93.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] 08:28:00.280 [debug] QUERY OK source="media_items" db=0.1ms 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 [1301393] 08:28:00.282 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301393] 08:28:00.282 [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] 08:28:00.282 [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 [] 08:28:00.282 [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 [] 08:28:00.282 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:00.283 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:00.283 [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 [] 08:28:00.284 [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 [] 08:28:00.284 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/da/b7da254cb4477f1f01e62a81ba61993ecbb75d490d0f38e3c537eaf228117d1f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:00.292 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2b/44/2b44bdd33cb650be2ac2552d879185cb82b1aa99410fbfc0d3739abaea872bca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:00.292 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:00.292 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:00.292 [info] {"args":{"id":1301392},"id":300586,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1689034,"event":"job:stop","queue_time":2602940,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:00.299 [info] {"args":{"id":1301394},"id":300588,"meta":{},"system_time":1777555680299529289,"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"]} 08:28:00.299 [debug] QUERY OK source="media_items" db=0.1ms idle=15.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" = ?) [1301394] 08:28:00.300 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:00.300 [debug] QUERY OK source="sources" db=0.1ms idle=16.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" = ?) [52] 08:28:00.300 [debug] QUERY OK source="media_profiles" db=0.1ms idle=16.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] 08:28:00.300 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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 [1301394] 08:28:00.301 [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" = ?) [1301394] 08:28:00.301 [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] 08:28:00.302 [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 [] 08:28:00.302 [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 [] 08:28:00.302 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:00.303 [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 [] 08:28:00.303 [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 [] 08:28:00.303 [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 [] 08:28:00.303 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a7/6a/a76a84aac371d1886345c6dc861f73c78b0d23eb44c0da9b59d3f0a47726c353.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:00.801 [info] {"source":"oban","duration":197,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:28:01.431 [info] GET /sources/27/media/2673461/force_download 08:28:01.432 [debug] QUERY OK source="settings" db=0.2ms idle=1128.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:01.432 [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 [] 08:28:01.432 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:01.432 [error] #PID<0.189060.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2673461/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/27/media/2673461/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2673461/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189060.0>, params: %{}, path_info: ["sources", "27", "media", "2673461", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2673461/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsleXA1b8fqunkAR3MC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2673461/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2673461/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2673461/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189060.0>, params: %{}, path_info: ["sources", "27", "media", "2673461", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:28:01.944 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a7/6a/a76a84aac371d1886345c6dc861f73c78b0d23eb44c0da9b59d3f0a47726c353.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:01.944 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:01.944 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:01.945 [info] {"args":{"id":1301394},"id":300588,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1645259,"event":"job:stop","queue_time":4298942,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:01.951 [info] {"args":{"id":1301395},"id":300589,"meta":{},"system_time":1777555681951709394,"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"]} 08:28:01.952 [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" = ?) [1301395] 08:28:01.952 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:01.952 [debug] QUERY OK source="sources" db=0.1ms idle=520.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" = ?) [52] 08:28:01.953 [debug] QUERY OK source="media_profiles" db=0.1ms idle=190.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] 08:28:01.953 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301395] 08:28:01.953 [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" = ?) [1301395] 08:28:01.953 [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] 08:28:01.954 [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 [] 08:28:01.954 [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 [] 08:28:01.954 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:01.955 [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 [] 08:28:01.955 [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 [] 08:28:01.956 [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 [] 08:28:01.956 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/77/b8/77b8cbb3ddf1c6833df9ee930cd39b5c4066f6c44cb73fefde21712a2d4bd03e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:02.162 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/da/b7da254cb4477f1f01e62a81ba61993ecbb75d490d0f38e3c537eaf228117d1f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:02.162 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:02.162 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:02.163 [info] {"args":{"id":1301393},"id":300587,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1883405,"event":"job:stop","queue_time":4278906,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:02.169 [info] {"args":{"id":1301397},"id":300590,"meta":{},"system_time":1777555682169475561,"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"]} 08:28:02.169 [debug] QUERY OK source="media_items" db=0.1ms idle=213.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" = ?) [1301397] 08:28:02.169 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:02.170 [debug] QUERY OK source="sources" db=0.1ms idle=214.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" = ?) [52] 08:28:02.170 [debug] QUERY OK source="media_profiles" db=0.1ms idle=214.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] 08:28:02.170 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 08:28:02.171 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 08:28:02.171 [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] 08:28:02.172 [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 [] 08:28:02.172 [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 [] 08:28:02.172 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:02.174 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:02.174 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:02.174 [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 [] 08:28:02.175 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/b7/6ab7a111af843e5b0d96c03720ae047c187e969b983fb865f0ea0ce43a67f14d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:03.841 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/77/b8/77b8cbb3ddf1c6833df9ee930cd39b5c4066f6c44cb73fefde21712a2d4bd03e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:03.842 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:03.842 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:03.842 [info] {"args":{"id":1301395},"id":300589,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1890522,"event":"job:stop","queue_time":5950890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:03.848 [info] {"args":{"id":1301398},"id":300591,"meta":{},"system_time":1777555683848522257,"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"]} 08:28:03.848 [debug] QUERY OK source="media_items" db=0.1ms idle=661.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" = ?) [1301398] 08:28:03.849 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:03.849 [debug] QUERY OK source="sources" db=0.2ms idle=661.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" = ?) [52] 08:28:03.849 [debug] QUERY OK source="media_profiles" db=0.1ms idle=84.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] 08:28:03.850 [debug] QUERY OK source="media_items" db=0.1ms 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 [1301398] 08:28:03.851 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301398] 08:28:03.851 [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] 08:28:03.851 [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 [] 08:28:03.851 [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 [] 08:28:03.852 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:03.852 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:03.852 [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 [] 08:28:03.853 [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 [] 08:28:03.853 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fa/78/fa78786dbd3d25288f7f1548477d829d7b8e3a60041396b4be904c9422957ff0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:03.857 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/b7/6ab7a111af843e5b0d96c03720ae047c187e969b983fb865f0ea0ce43a67f14d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:03.857 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:03.857 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:03.857 [info] {"args":{"id":1301397},"id":300590,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1687967,"event":"job:stop","queue_time":6168892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:03.863 [info] {"args":{"id":1301399},"id":300592,"meta":{},"system_time":1777555683863443254,"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"]} 08:28:03.863 [debug] QUERY OK source="media_items" db=0.1ms idle=10.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" = ?) [1301399] 08:28:03.863 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:03.864 [debug] QUERY OK source="sources" db=0.1ms idle=10.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" = ?) [52] 08:28:03.864 [debug] QUERY OK source="media_profiles" db=0.1ms idle=11.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] 08:28:03.864 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301399] 08:28:03.865 [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" = ?) [1301399] 08:28:03.865 [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] 08:28:03.865 [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 [] 08:28:03.866 [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 [] 08:28:03.866 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:03.867 [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 [] 08:28:03.867 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:03.868 [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 [] 08:28:03.868 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/3a/933a19f48d5aad867028d2a896e9cfa9d26567d0a32770c6b13a18e859124404.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:05.608 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/3a/933a19f48d5aad867028d2a896e9cfa9d26567d0a32770c6b13a18e859124404.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:05.608 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:05.609 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:05.609 [info] {"args":{"id":1301399},"id":300592,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1745664,"event":"job:stop","queue_time":7862893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:05.615 [info] {"args":{"id":1301400},"id":300593,"meta":{},"system_time":1777555685615483242,"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"]} 08:28:05.615 [debug] QUERY OK source="media_items" db=0.1ms idle=428.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" = ?) [1301400] 08:28:05.615 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:05.616 [debug] QUERY OK source="sources" db=0.2ms idle=428.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" = ?) [52] 08:28:05.616 [debug] QUERY OK source="media_profiles" db=0.1ms idle=429.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] 08:28:05.616 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301400] 08:28:05.618 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301400] 08:28:05.618 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:28:05.619 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:05.619 [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 [] 08:28:05.619 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:05.620 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:28:05.620 [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 [] 08:28:05.620 [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 [] 08:28:05.621 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c7/29/c7296dadbbc3a8bde685f9708e7adbe7cadd5ad71a3a9513b4c43272379bd32c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:05.748 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fa/78/fa78786dbd3d25288f7f1548477d829d7b8e3a60041396b4be904c9422957ff0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:05.749 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:05.749 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:05.749 [info] {"args":{"id":1301398},"id":300591,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1900768,"event":"job:stop","queue_time":7847904,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:05.755 [info] {"args":{"id":2720968},"id":300594,"meta":{},"system_time":1777555685755567285,"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"]} 08:28:05.755 [debug] QUERY OK source="media_items" db=0.1ms idle=135.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" = ?) [2720968] 08:28:05.756 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:28:05.756 [debug] QUERY OK source="sources" db=0.2ms idle=135.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" = ?) [52] 08:28:05.756 [debug] QUERY OK source="media_profiles" db=0.1ms idle=135.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] 08:28:05.757 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 08:28:05.757 [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" = ?) [2720968] 08:28:05.758 [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] 08:28:05.758 [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 [] 08:28:05.758 [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 [] 08:28:05.758 [debug] Running yt-dlp command for action: get_downloadable_status 08:28:05.759 [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 [] 08:28:05.759 [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 [] 08:28:05.759 [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 [] 08:28:05.759 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/4c/de4c1a81a67d7a3062e7f99657884a5ccb8f39817721c8b0b5bb4148fb9a92f1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:28:05.938 [info] {"source":"oban","duration":3378,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:06.433 [info] GET /sources/45/media/2749206/force_download 08:28:06.433 [debug] QUERY OK source="settings" db=0.1ms idle=673.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:06.433 [debug] QUERY OK source="settings" db=0.0ms idle=674.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:06.433 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:06.434 [error] #PID<0.189079.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2749206/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/45/media/2749206/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2749206/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189079.0>, params: %{}, path_info: ["sources", "45", "media", "2749206", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2749206/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsleppQb1Gzm5IAR3NC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2749206/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2749206/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2749206/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189079.0>, params: %{}, path_info: ["sources", "45", "media", "2749206", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:28:07.333 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/4c/de4c1a81a67d7a3062e7f99657884a5ccb8f39817721c8b0b5bb4148fb9a92f1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:07.333 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:07.333 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:07.333 [info] {"args":{"id":2720968},"id":300594,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1577839,"event":"job:stop","queue_time":9754938,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:07.492 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c7/29/c7296dadbbc3a8bde685f9708e7adbe7cadd5ad71a3a9513b4c43272379bd32c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:28:07.492 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:07.492 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:28:07.492 [info] {"args":{"id":1301400},"id":300593,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1876859,"event":"job:stop","queue_time":9614937,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:28:11.433 [info] GET /sources/25/media/2625265/force_download 08:28:11.434 [debug] QUERY OK source="settings" db=0.1ms idle=659.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 [] 08:28:11.434 [debug] QUERY OK source="settings" db=0.1ms idle=247.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 [] 08:28:11.434 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:11.434 [error] #PID<0.189080.0> running PinchflatWeb.Endpoint (connection #PID<0.189029.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/25/media/2625265/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/25/media/2625265/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2625265/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189080.0>, params: %{}, path_info: ["sources", "25", "media", "2625265", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/media/2625265/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsle8Rikvju-YUAR3OC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2625265/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/25/media/2625265/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/media/2625265/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55750}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189080.0>, params: %{}, path_info: ["sources", "25", "media", "2625265", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:28:17.532 [info] GET /sources/9/media/2663558/force_download 08:28:17.532 [debug] QUERY OK source="settings" db=0.1ms idle=749.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:17.533 [debug] QUERY OK source="settings" db=0.0ms idle=346.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:17.533 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:17.533 [error] #PID<0.189082.0> running PinchflatWeb.Endpoint (connection #PID<0.189081.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2663558/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/9/media/2663558/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663558/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189082.0>, params: %{}, path_info: ["sources", "9", "media", "2663558", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2663558/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslfS_lTM6wUnoAUVIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663558/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2663558/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663558/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189082.0>, params: %{}, path_info: ["sources", "9", "media", "2663558", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 08:28:22.396 [info] GET /sources/46/media/2580275/force_download 08:28:22.397 [debug] QUERY OK source="settings" db=0.1ms idle=1209.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:22.397 [debug] QUERY OK source="settings" db=0.1ms idle=1210.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:22.397 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:22.397 [error] #PID<0.189083.0> running PinchflatWeb.Endpoint (connection #PID<0.189081.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2580275/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/46/media/2580275/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2580275/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189083.0>, params: %{}, path_info: ["sources", "46", "media", "2580275", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2580275/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslflHQjtfb-bAAR3PC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2580275/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2580275/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189081.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2580275/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47080}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189083.0>, params: %{}, path_info: ["sources", "46", "media", "2580275", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:28:27.402 [info] GET /sources/57/media/2569752/force_download 08:28:27.402 [debug] QUERY OK source="settings" db=0.1ms idle=1215.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:27.403 [debug] QUERY OK source="settings" db=0.0ms idle=1215.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:27.403 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:28:27.403 [error] #PID<0.189085.0> running PinchflatWeb.Endpoint (connection #PID<0.189084.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2569752/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/57/media/2569752/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189084.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2569752/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56846}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189085.0>, params: %{}, path_info: ["sources", "57", "media", "2569752", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2569752/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslf3wwBxoUuDkAR3QC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189084.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2569752/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56846}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2569752/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189084.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2569752/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56846}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189085.0>, params: %{}, path_info: ["sources", "57", "media", "2569752", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:28:35.942 [info] {"source":"oban","duration":3111,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:36.923 [info] GET /sources/30/media/2548032 08:28:36.923 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2548032", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 08:28:36.923 [debug] QUERY OK source="media_items" db=0.1ms idle=1736.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" = ?) [2548032] 08:28:36.923 [debug] QUERY OK source="tasks" db=0.1ms idle=1736.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" [2548032] 08:28:36.923 [debug] QUERY OK source="sources" db=0.1ms idle=1112.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" = ?) [30] 08:28:36.924 [debug] QUERY OK source="settings" db=0.0ms idle=981.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:36.924 [debug] QUERY OK source="settings" db=0.0ms idle=111.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:28:36.924 [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 [] 08:28:36.924 [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] 08:28:36.925 [info] Sent 200 in 2ms 08:28:41.480 [info] GET /media/cf35f03f-8a3b-4adf-a14f-6ceb925cdd4e/stream 08:28:41.480 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "cf35f03f-8a3b-4adf-a14f-6ceb925cdd4e"} Pipelines: [:maybe_basic_auth] 08:28:41.481 [debug] QUERY OK source="media_items" db=0.6ms idle=1293.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" = ?) ["cf35f03f-8a3b-4adf-a14f-6ceb925cdd4e"] 08:28:41.481 [debug] Invalid range request for media item: cf35f03f-8a3b-4adf-a14f-6ceb925cdd4e - serving full file 08:28:41.481 [info] Sent 200 in 1ms 08:28:51.593 [info] GET /sources/43/media/2767565 08:28:51.593 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2767565", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 08:28:51.593 [debug] QUERY OK source="media_items" db=0.1ms idle=867.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" = ?) [2767565] 08:28:51.594 [debug] QUERY OK source="tasks" db=0.0ms idle=867.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" [2767565] 08:28:51.594 [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" = ?) [43] 08:28:51.594 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=868.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" = ?) [282602] 08:28:51.594 [debug] QUERY OK source="settings" db=0.0ms idle=862.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 [] 08:28:51.594 [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 [] 08:28:51.595 [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 [] 08:28:51.595 [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] 08:28:51.596 [info] Sent 200 in 3ms 08:29:00.802 [info] {"source":"oban","duration":217,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:29:05.946 [info] {"source":"oban","duration":3316,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:18.724 [info] GET /sources/27/media/2485207 08:29:18.724 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2485207", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 08:29:18.724 [debug] QUERY OK source="media_items" db=0.1ms idle=1998.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" = ?) [2485207] 08:29:18.724 [debug] QUERY OK source="tasks" db=0.1ms idle=1998.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" [2485207] 08:29:18.724 [debug] QUERY OK source="sources" db=0.2ms idle=1961.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" = ?) [27] 08:29:18.725 [debug] QUERY OK source="settings" db=0.0ms idle=999.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:18.725 [debug] QUERY OK source="settings" db=0.0ms idle=960.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:18.725 [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 [] 08:29:18.726 [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] 08:29:18.727 [info] Sent 200 in 2ms 08:29:23.218 [info] GET /sources/30/media/2769902 08:29:23.218 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2769902", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 08:29:23.218 [debug] QUERY OK source="media_items" db=0.2ms idle=1492.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" = ?) [2769902] 08:29:23.219 [debug] QUERY OK source="tasks" db=0.1ms idle=1492.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" [2769902] 08:29:23.219 [debug] QUERY OK source="sources" db=0.1ms idle=1449.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" = ?) [30] 08:29:23.219 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=493.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" IN (?,?)) [283264, 285077] 08:29:23.219 [debug] QUERY OK source="settings" db=0.0ms idle=449.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 [] 08:29:23.219 [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 [] 08:29:23.220 [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 [] 08:29:23.220 [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] 08:29:23.221 [info] Sent 200 in 3ms 08:29:28.017 [info] GET /sources/45/media/2470150 08:29:28.017 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2470150", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 08:29:28.017 [debug] QUERY OK source="media_items" db=0.1ms idle=1291.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" = ?) [2470150] 08:29:28.018 [debug] QUERY OK source="tasks" db=0.0ms idle=1291.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" [2470150] 08:29:28.018 [debug] QUERY OK source="sources" db=0.1ms idle=1292.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" = ?) [45] 08:29:28.018 [debug] QUERY OK source="settings" db=0.0ms idle=1242.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 [] 08:29:28.018 [debug] QUERY OK source="settings" db=0.0ms idle=240.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 [] 08:29:28.018 [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 [] 08:29:28.019 [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] 08:29:28.020 [info] Sent 200 in 2ms 08:29:31.803 [info] GET /media/64e005b1-2b54-4aca-a419-32e687c4cd9d/stream 08:29:31.803 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "64e005b1-2b54-4aca-a419-32e687c4cd9d"} Pipelines: [:maybe_basic_auth] 08:29:31.804 [debug] QUERY OK source="media_items" db=1.0ms idle=77.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."uuid" = ?) ["64e005b1-2b54-4aca-a419-32e687c4cd9d"] 08:29:31.805 [debug] Invalid range request for media item: 64e005b1-2b54-4aca-a419-32e687c4cd9d - serving full file 08:29:31.805 [info] Sent 200 in 1ms 08:29:35.949 [info] {"source":"oban","duration":2841,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:40.604 [info] GET /media/c559ad14-ecca-4c91-9caa-85a686371b8c/stream 08:29:40.604 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c559ad14-ecca-4c91-9caa-85a686371b8c"} Pipelines: [:maybe_basic_auth] 08:29:40.605 [debug] QUERY OK source="media_items" db=0.9ms idle=874.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" = ?) ["c559ad14-ecca-4c91-9caa-85a686371b8c"] 08:29:40.605 [debug] Invalid range request for media item: c559ad14-ecca-4c91-9caa-85a686371b8c - serving full file 08:29:40.605 [info] Sent 200 in 1ms 08:29:53.372 [info] GET /sources/52/media/2021070 08:29:53.372 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2021070", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 08:29:53.372 [debug] QUERY OK source="media_items" db=0.1ms idle=1526.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" = ?) [2021070] 08:29:53.373 [debug] QUERY OK source="tasks" db=0.0ms idle=1526.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" [2021070] 08:29:53.373 [debug] QUERY OK source="sources" db=0.1ms idle=1526.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" = ?) [52] 08:29:53.373 [debug] QUERY OK source="settings" db=0.0ms idle=1509.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:53.373 [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 [] 08:29:53.373 [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 [] 08:29:53.374 [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] 08:29:53.374 [info] Sent 200 in 2ms 08:29:57.317 [info] GET /sources/52/media/2078035 08:29:57.317 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2078035", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 08:29:57.317 [debug] QUERY OK source="media_items" db=0.2ms idle=471.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" = ?) [2078035] 08:29:57.318 [debug] QUERY OK source="tasks" db=0.0ms idle=471.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" [2078035] 08:29:57.318 [debug] QUERY OK source="sources" db=0.2ms idle=471.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" = ?) [52] 08:29:57.318 [debug] QUERY OK source="settings" db=0.0ms idle=472.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:57.318 [debug] QUERY OK source="settings" db=0.0ms idle=449.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 [] 08:29:57.319 [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 [] 08:29:57.319 [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] 08:29:57.320 [info] Sent 200 in 3ms 08:30:00.803 [info] {"source":"oban","duration":277,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:30:02.303 [info] GET /sources/43/media/2805841 08:30:02.303 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2805841", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 08:30:02.303 [debug] QUERY OK source="media_items" db=0.2ms idle=1457.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" = ?) [2805841] 08:30:02.304 [debug] QUERY OK source="tasks" db=0.1ms idle=1457.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" [2805841] 08:30:02.304 [debug] QUERY OK source="sources" db=0.2ms idle=1428.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" = ?) [43] 08:30:02.305 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=458.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" IN (?,?)) [291024, 294558] 08:30:02.305 [debug] QUERY OK source="settings" db=0.0ms idle=427.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:02.305 [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 [] 08:30:02.305 [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 [] 08:30:02.306 [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] 08:30:02.307 [info] Sent 200 in 4ms 08:30:05.955 [info] {"source":"oban","duration":4915,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:07.881 [info] GET /sources/57/media/2592919 08:30:07.882 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2592919", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:30:07.882 [debug] QUERY OK source="media_items" db=0.2ms idle=998.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" = ?) [2592919] 08:30:07.882 [debug] QUERY OK source="tasks" db=0.1ms idle=36.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" [2592919] 08:30:07.883 [debug] QUERY OK source="sources" db=0.2ms idle=36.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" = ?) [57] 08:30:07.883 [debug] QUERY OK source="settings" db=0.0ms idle=37.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 [] 08:30:07.883 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:30:07.883 [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 [] 08:30:07.884 [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] 08:30:07.885 [info] Sent 200 in 3ms 08:30:12.784 [info] GET /sources/57/media/2825644 08:30:12.784 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2825644", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:30:12.785 [debug] QUERY OK source="media_items" db=0.1ms idle=938.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" = ?) [2825644] 08:30:12.785 [debug] QUERY OK source="tasks" db=0.1ms idle=939.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" [2825644] 08:30:12.785 [debug] QUERY OK source="sources" db=0.1ms idle=939.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" = ?) [57] 08:30:12.785 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=939.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" IN (?,?)) [295992, 297995] 08:30:12.786 [debug] QUERY OK source="settings" db=0.0ms idle=897.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 [] 08:30:12.786 [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 [] 08:30:12.786 [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 [] 08:30:12.786 [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] 08:30:12.787 [info] Sent 200 in 3ms 08:30:17.788 [info] GET /sources/57/media/2662454 08:30:17.788 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2662454", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:30:17.789 [debug] QUERY OK source="media_items" db=0.1ms idle=1943.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" = ?) [2662454] 08:30:17.789 [debug] QUERY OK source="tasks" db=0.1ms idle=1943.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" [2662454] 08:30:17.789 [debug] QUERY OK source="sources" db=0.1ms idle=1943.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" = ?) [57] 08:30:17.790 [debug] QUERY OK source="settings" db=0.1ms idle=1896.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 [] 08:30:17.790 [debug] QUERY OK source="settings" db=0.0ms idle=895.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:17.790 [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 [] 08:30:17.791 [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] 08:30:17.791 [info] Sent 200 in 3ms 08:30:22.790 [info] GET /sources/57/media/2429274 08:30:22.790 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2429274", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:30:22.791 [debug] QUERY OK source="media_items" db=0.1ms idle=1944.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" = ?) [2429274] 08:30:22.791 [debug] QUERY OK source="tasks" db=0.3ms idle=1945.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" [2429274] 08:30:22.791 [debug] QUERY OK source="sources" db=0.4ms idle=1945.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" = ?) [57] 08:30:22.793 [debug] QUERY OK source="oban_jobs" db=1.2ms idle=1892.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [278011, 278016, 279617, 279623, 281082, 281087, 282368, 282376, 283711, 283717, 285034, 285039, 286451, 286456, 288273, 288278, 290094, 290099, 292214, 292219, 294270, 294275, 295996, 296001, 297768, 297773, 299536, 299541] 08:30:22.794 [debug] QUERY OK source="settings" db=0.1ms idle=893.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 [] 08:30:22.794 [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 [] 08:30:22.794 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:30:22.794 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:30:22.797 [info] Sent 200 in 7ms 08:30:27.795 [info] GET /sources/46/media/2722772 08:30:27.795 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2722772", "prevent_download" => "true", "source_id" => "46"} Pipelines: [:browser] 08:30:27.795 [debug] QUERY OK source="media_items" db=0.1ms idle=1949.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" = ?) [2722772] 08:30:27.795 [debug] QUERY OK source="tasks" db=0.1ms idle=1949.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" [2722772] 08:30:27.796 [debug] QUERY OK source="sources" db=0.2ms idle=1949.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" = ?) [46] 08:30:27.796 [debug] QUERY OK source="settings" db=0.0ms idle=1890.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:27.796 [debug] QUERY OK source="settings" db=0.0ms idle=889.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 [] 08:30:27.796 [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 [] 08:30:27.797 [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] 08:30:27.798 [info] Sent 200 in 3ms 08:30:32.818 [info] GET /sources/46/media/2580275 08:30:32.819 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2580275", "prevent_download" => "true", "source_id" => "46"} Pipelines: [:browser] 08:30:32.819 [debug] QUERY OK source="media_items" db=0.1ms idle=1973.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" = ?) [2580275] 08:30:32.819 [debug] QUERY OK source="tasks" db=0.0ms idle=1973.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" [2580275] 08:30:32.819 [debug] QUERY OK source="sources" db=0.1ms idle=1973.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" = ?) [46] 08:30:32.820 [debug] QUERY OK source="settings" db=0.0ms idle=1907.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:32.820 [debug] QUERY OK source="settings" db=0.0ms idle=906.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:32.820 [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 [] 08:30:32.821 [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] 08:30:32.821 [info] Sent 200 in 2ms 08:30:35.959 [info] {"source":"oban","duration":2678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:37.821 [info] GET /sources/9/media/2722514 08:30:37.821 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2722514", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 08:30:37.822 [debug] QUERY OK source="media_items" db=0.2ms idle=1976.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" = ?) [2722514] 08:30:37.822 [debug] QUERY OK source="tasks" db=0.0ms idle=1976.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" [2722514] 08:30:37.822 [debug] QUERY OK source="sources" db=0.1ms idle=1904.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" = ?) [9] 08:30:37.823 [debug] QUERY OK source="settings" db=0.0ms idle=1863.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 [] 08:30:37.823 [debug] QUERY OK source="settings" db=0.0ms idle=903.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 [] 08:30:37.823 [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 [] 08:30:37.823 [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] 08:30:37.824 [info] Sent 200 in 3ms 08:30:42.820 [info] GET /sources/9/media/2663559 08:30:42.820 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2663559", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 08:30:42.820 [debug] QUERY OK source="media_items" db=0.1ms idle=1974.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" = ?) [2663559] 08:30:42.821 [debug] QUERY OK source="tasks" db=0.1ms idle=1974.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" [2663559] 08:30:42.821 [debug] QUERY OK source="sources" db=0.2ms idle=1974.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" = ?) [9] 08:30:42.821 [debug] QUERY OK source="settings" db=0.0ms idle=1895.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:42.821 [debug] QUERY OK source="settings" db=0.0ms idle=895.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 [] 08:30:42.822 [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 [] 08:30:42.822 [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] 08:30:42.823 [info] Sent 200 in 3ms 08:30:48.068 [info] GET /media/ffc2df8b-ee37-43ac-8883-87890c80a480/stream 08:30:48.068 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "ffc2df8b-ee37-43ac-8883-87890c80a480"} Pipelines: [:maybe_basic_auth] 08:30:48.069 [debug] QUERY OK source="media_items" db=0.9ms idle=222.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."uuid" = ?) ["ffc2df8b-ee37-43ac-8883-87890c80a480"] 08:30:48.069 [debug] Invalid range request for media item: ffc2df8b-ee37-43ac-8883-87890c80a480 - serving full file 08:30:48.069 [info] Sent 200 in 1ms 08:30:57.924 [info] GET /media/568c1635-57f9-40be-b8b2-3b890650f6fc/stream 08:30:57.925 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "568c1635-57f9-40be-b8b2-3b890650f6fc"} Pipelines: [:maybe_basic_auth] 08:30:57.926 [debug] QUERY OK source="media_items" db=0.9ms idle=979.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" = ?) ["568c1635-57f9-40be-b8b2-3b890650f6fc"] 08:30:57.926 [debug] Invalid range request for media item: 568c1635-57f9-40be-b8b2-3b890650f6fc - serving full file 08:30:57.926 [info] Sent 200 in 1ms 08:30:59.487 [info] GET / 08:30:59.487 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:30:59.487 [debug] QUERY OK source="settings" db=0.1ms idle=1641.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:30:59.487 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1641.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:30:59.488 [debug] QUERY OK source="sources" db=0.4ms idle=1641.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:30:59.514 [debug] QUERY OK source="media_items" db=26.0ms idle=1562.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:30:59.530 [debug] QUERY OK source="media_items" db=15.9ms idle=850.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:30:59.530 [debug] QUERY OK source="settings" db=0.1ms idle=43.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 [] 08:30:59.531 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:30:59.531 [debug] QUERY OK source="settings" db=0.0ms idle=43.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 [] 08:30:59.532 [debug] QUERY OK source="tasks" db=0.1ms idle=17.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"] 08:30:59.533 [debug] QUERY OK source="media_items" db=1.0ms 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 (NOT (m0."media_filepath" IS NULL)) [] 08:30:59.533 [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] 08:30:59.534 [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" IN (?,?,?,?)) [52, 27, 25, 45] 08:30:59.608 [debug] QUERY OK source="media_items" db=73.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"))) [] 08:30:59.609 [debug] QUERY OK source="media_items" db=0.5ms idle=76.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] 08:30:59.609 [debug] QUERY OK source="sources" db=0.1ms idle=76.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" = ?) [43] 08:30:59.611 [info] Sent 200 in 124ms 08:31:00.804 [info] {"source":"oban","duration":209,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:31:05.963 [info] {"source":"oban","duration":3156,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:25.118 [info] GET /sources/55/media/2534712/force_download 08:31:25.118 [debug] QUERY OK source="settings" db=0.1ms idle=1272.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 [] 08:31:25.119 [debug] QUERY OK source="settings" db=0.0ms idle=1272.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:25.119 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:25.119 [error] #PID<0.189182.0> running PinchflatWeb.Endpoint (connection #PID<0.189181.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2534712/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/55/media/2534712/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2534712/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189182.0>, params: %{}, path_info: ["sources", "55", "media", "2534712", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2534712/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslqNzkSbSHE-EAR3hC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2534712/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2534712/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2534712/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189182.0>, params: %{}, path_info: ["sources", "55", "media", "2534712", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:31:26.672 [info] GET /sources/55/media/2394368/force_download 08:31:26.673 [debug] QUERY OK source="settings" db=0.1ms idle=1826.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:26.673 [debug] QUERY OK source="settings" db=0.1ms idle=1826.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:26.673 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:26.673 [error] #PID<0.189183.0> running PinchflatWeb.Endpoint (connection #PID<0.189181.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2394368/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/55/media/2394368/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2394368/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189183.0>, params: %{}, path_info: ["sources", "55", "media", "2394368", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2394368/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslqTmJmB1fhYsAR3iC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2394368/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2394368/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2394368/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189183.0>, params: %{}, path_info: ["sources", "55", "media", "2394368", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:31:31.673 [info] GET /sources/46/media/2549909/force_download 08:31:31.673 [debug] QUERY OK source="settings" db=0.2ms idle=1827.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 [] 08:31:31.673 [debug] QUERY OK source="settings" db=0.1ms idle=1827.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:31.674 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:31.674 [error] #PID<0.189186.0> running PinchflatWeb.Endpoint (connection #PID<0.189181.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2549909/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/46/media/2549909/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2549909/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189186.0>, params: %{}, path_info: ["sources", "46", "media", "2549909", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2549909/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslqmOTfWlIE4AAR3kC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2549909/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2549909/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2549909/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54124}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189186.0>, params: %{}, path_info: ["sources", "46", "media", "2549909", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:31:35.967 [info] {"source":"oban","duration":2658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:36.680 [info] GET /sources/9/media/2662810/force_download 08:31:36.680 [debug] QUERY OK source="settings" db=0.1ms idle=1834.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:36.680 [debug] QUERY OK source="settings" db=0.0ms idle=1834.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 [] 08:31:36.680 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:36.681 [error] #PID<0.189188.0> running PinchflatWeb.Endpoint (connection #PID<0.189187.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2662810/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/9/media/2662810/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189187.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662810/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34142}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189188.0>, params: %{}, path_info: ["sources", "9", "media", "2662810", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2662810/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslq44GRjLDDKcAUVwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189187.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662810/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34142}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2662810/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189187.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662810/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34142}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189188.0>, params: %{}, path_info: ["sources", "9", "media", "2662810", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 08:31:41.728 [info] GET /sources/57/media/2763982/force_download 08:31:41.728 [debug] QUERY OK source="settings" db=0.1ms idle=1882.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:41.729 [debug] QUERY OK source="settings" db=0.1ms idle=1882.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:41.729 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:41.729 [error] #PID<0.189190.0> running PinchflatWeb.Endpoint (connection #PID<0.189189.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2763982/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/57/media/2763982/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2763982/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189190.0>, params: %{}, path_info: ["sources", "57", "media", "2763982", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2763982/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslrLrrROMTKcwAUVxB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2763982/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2763982/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2763982/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189190.0>, params: %{}, path_info: ["sources", "57", "media", "2763982", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:31:46.684 [info] GET /sources/9/media/2662813/force_download 08:31:46.684 [debug] QUERY OK source="settings" db=0.1ms idle=1837.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:46.684 [debug] QUERY OK source="settings" db=0.0ms idle=1838.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:46.684 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:46.685 [error] #PID<0.189192.0> running PinchflatWeb.Endpoint (connection #PID<0.189189.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2662813/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/9/media/2662813/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662813/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189192.0>, params: %{}, path_info: ["sources", "9", "media", "2662813", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2662813/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslreJNQjd73WEAUVyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662813/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2662813/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662813/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189192.0>, params: %{}, path_info: ["sources", "9", "media", "2662813", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 08:31:51.686 [info] GET /sources/57/media/2680277/force_download 08:31:51.687 [debug] QUERY OK source="settings" db=0.1ms idle=1840.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:51.687 [debug] QUERY OK source="settings" db=0.0ms idle=1841.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:51.687 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:51.687 [error] #PID<0.189193.0> running PinchflatWeb.Endpoint (connection #PID<0.189189.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2680277/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/57/media/2680277/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2680277/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189193.0>, params: %{}, path_info: ["sources", "57", "media", "2680277", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2680277/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslrwx78KNaPyYAUVzB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2680277/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2680277/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2680277/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189193.0>, params: %{}, path_info: ["sources", "57", "media", "2680277", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:31:56.689 [info] GET /sources/55/media/2786833/force_download 08:31:56.689 [debug] QUERY OK source="settings" db=0.1ms idle=1843.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:56.690 [debug] QUERY OK source="settings" db=0.0ms idle=1843.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:31:56.690 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:31:56.690 [error] #PID<0.189194.0> running PinchflatWeb.Endpoint (connection #PID<0.189189.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2786833/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/55/media/2786833/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2786833/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189194.0>, params: %{}, path_info: ["sources", "55", "media", "2786833", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2786833/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslsDaqeTDkl5kAUV0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2786833/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2786833/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2786833/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46600}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189194.0>, params: %{}, path_info: ["sources", "55", "media", "2786833", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:32:00.805 [info] {"source":"oban","duration":218,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:32:01.694 [info] GET /sources/57/media/2647123/force_download 08:32:01.694 [debug] QUERY OK source="settings" db=0.1ms idle=1847.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:01.694 [debug] QUERY OK source="settings" db=0.0ms idle=1848.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:01.694 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:32:01.694 [error] #PID<0.189198.0> running PinchflatWeb.Endpoint (connection #PID<0.189197.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2647123/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/57/media/2647123/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2647123/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42916}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189198.0>, params: %{}, path_info: ["sources", "57", "media", "2647123", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2647123/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslsWD2QepY_48AR3lC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2647123/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42916}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2647123/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2647123/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42916}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189198.0>, params: %{}, path_info: ["sources", "57", "media", "2647123", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:32:05.973 [info] {"source":"oban","duration":5843,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:06.714 [info] GET /sources/55/media/2456842/force_download 08:32:06.714 [debug] QUERY OK source="settings" db=0.1ms idle=1868.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 [] 08:32:06.714 [debug] QUERY OK source="settings" db=0.1ms idle=935.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:06.715 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:32:06.715 [error] #PID<0.189200.0> running PinchflatWeb.Endpoint (connection #PID<0.189199.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2456842/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/55/media/2456842/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2456842/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189200.0>, params: %{}, path_info: ["sources", "55", "media", "2456842", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2456842/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslsowxdkJFm5MAR3mC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2456842/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2456842/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2456842/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189200.0>, params: %{}, path_info: ["sources", "55", "media", "2456842", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:32:11.715 [info] GET /sources/57/media/2720168/force_download 08:32:11.715 [debug] QUERY OK source="settings" db=0.1ms idle=1869.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 [] 08:32:11.715 [debug] QUERY OK source="settings" db=0.0ms idle=1869.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:11.716 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:32:11.716 [error] #PID<0.189201.0> running PinchflatWeb.Endpoint (connection #PID<0.189199.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2720168/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/57/media/2720168/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2720168/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189201.0>, params: %{}, path_info: ["sources", "57", "media", "2720168", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2720168/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsls7ZGiVLoHRUAR3nC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2720168/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2720168/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2720168/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42930}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189201.0>, params: %{}, path_info: ["sources", "57", "media", "2720168", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:32:16.719 [info] GET /sources/55/media/2693064/force_download 08:32:16.720 [debug] QUERY OK source="settings" db=0.1ms idle=1873.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:16.720 [debug] QUERY OK source="settings" db=0.0ms idle=1874.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:16.720 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:32:16.720 [error] #PID<0.189203.0> running PinchflatWeb.Endpoint (connection #PID<0.189202.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2693064/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/55/media/2693064/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189202.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2693064/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49378}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189203.0>, params: %{}, path_info: ["sources", "55", "media", "2693064", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2693064/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsltOCPMSpkQj4AR3oC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189202.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2693064/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49378}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2693064/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189202.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2693064/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49378}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189203.0>, params: %{}, path_info: ["sources", "55", "media", "2693064", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:32:22.832 [info] GET /sources/9/media/2663555 08:32:22.832 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2663555", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 08:32:22.833 [debug] QUERY OK source="media_items" db=0.1ms idle=986.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" = ?) [2663555] 08:32:22.833 [debug] QUERY OK source="tasks" db=0.0ms idle=987.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" [2663555] 08:32:22.833 [debug] QUERY OK source="sources" db=0.1ms idle=987.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" = ?) [9] 08:32:22.833 [debug] QUERY OK source="settings" db=0.0ms idle=987.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:22.834 [debug] QUERY OK source="settings" db=0.0ms idle=26.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 [] 08:32:22.834 [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 [] 08:32:22.834 [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] 08:32:22.835 [info] Sent 200 in 3ms 08:32:27.693 [info] GET /sources/9/media/2662814 08:32:27.693 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2662814", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 08:32:27.694 [debug] QUERY OK source="media_items" db=0.1ms idle=1848.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" = ?) [2662814] 08:32:27.694 [debug] QUERY OK source="tasks" db=0.1ms idle=1848.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" [2662814] 08:32:27.694 [debug] QUERY OK source="sources" db=0.1ms idle=1848.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" = ?) [9] 08:32:27.695 [debug] QUERY OK source="settings" db=0.0ms idle=1849.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 [] 08:32:27.695 [debug] QUERY OK source="settings" db=0.0ms idle=883.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:27.695 [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 [] 08:32:27.696 [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] 08:32:27.697 [info] Sent 200 in 3ms 08:32:32.694 [info] GET /media/ba7df436-31fc-47bd-be2e-e86762b65011/stream 08:32:32.694 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "ba7df436-31fc-47bd-be2e-e86762b65011"} Pipelines: [:maybe_basic_auth] 08:32:32.695 [debug] QUERY OK source="media_items" db=0.9ms idle=1848.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" = ?) ["ba7df436-31fc-47bd-be2e-e86762b65011"] 08:32:32.695 [debug] Invalid range request for media item: ba7df436-31fc-47bd-be2e-e86762b65011 - serving full file 08:32:32.695 [info] Sent 200 in 1ms 08:32:35.977 [info] {"source":"oban","duration":2828,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:36.837 [info] {"args":{"id":2082242},"id":299060,"meta":{},"system_time":1777555956837011828,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:32:36.840 [debug] QUERY OK source="media_items" db=3.0ms idle=1011.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" = ?) [2082242] 08:32:36.840 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:32:36.841 [debug] QUERY OK source="sources" db=0.7ms idle=994.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" = ?) [43] 08:32:36.841 [debug] QUERY OK source="media_profiles" db=0.4ms idle=863.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] 08:32:36.842 [debug] QUERY OK source="media_items" db=0.3ms idle=14.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 [2082242] 08:32:36.843 [debug] QUERY OK source="media_metadata" db=0.0ms idle=6.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" = ?) [2082242] 08:32:36.843 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:32:36.844 [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 [] 08:32:36.844 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:32:36.844 [debug] Running yt-dlp command for action: get_downloadable_status 08:32:36.845 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:32:36.845 [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 [] 08:32:36.845 [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 [] 08:32:36.845 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pFMNAddGnaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/36/01/360130c9b22898467e5e14702e1c3cf336b8505eb406290c07aa5fdb0cfcc1b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:32:39.530 [info] GET /sources/30/media/2831238 08:32:39.530 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2831238", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 08:32:39.530 [debug] QUERY OK source="media_items" db=0.1ms idle=1684.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" = ?) [2831238] 08:32:39.531 [debug] QUERY OK source="tasks" db=0.1ms idle=1684.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" [2831238] 08:32:39.531 [debug] QUERY OK source="sources" db=0.2ms idle=1684.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" = ?) [30] 08:32:39.532 [debug] QUERY OK source="oban_jobs" db=0.9ms idle=1685.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" IN (?,?)) [297312, 299834] 08:32:39.532 [debug] QUERY OK source="settings" db=0.0ms idle=700.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:39.532 [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 [] 08:32:39.533 [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 [] 08:32:39.533 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:32:39.534 [info] Sent 200 in 4ms 08:32:41.221 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pFMNAddGnaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/36/01/360130c9b22898467e5e14702e1c3cf336b8505eb406290c07aa5fdb0cfcc1b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] pFMNAddGnaM: Join this channel to get access to members-only content like this video, and other exclusive perks. 08:32:41.221 [error] yt-dlp download error for media item #2082242: "ERROR: [youtube] pFMNAddGnaM: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 08:32:41.222 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2082242},"id":299060,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4384482,"event":"job:exception","queue_time":716786,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:32:44.105 [info] GET /sources/52/media/2061023 08:32:44.105 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2061023", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 08:32:44.106 [debug] QUERY OK source="media_items" db=0.2ms idle=1260.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" = ?) [2061023] 08:32:44.106 [debug] QUERY OK source="tasks" db=0.1ms idle=1260.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" [2061023] 08:32:44.106 [debug] QUERY OK source="sources" db=0.1ms idle=1260.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" = ?) [52] 08:32:44.107 [debug] QUERY OK source="settings" db=0.0ms idle=1261.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:44.107 [debug] QUERY OK source="settings" db=0.0ms idle=268.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 [] 08:32:44.107 [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 [] 08:32:44.107 [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] 08:32:44.108 [info] Sent 200 in 2ms 08:32:49.771 [info] GET /sources/43/media/2767301 08:32:49.771 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2767301", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 08:32:49.771 [debug] QUERY OK source="media_items" db=0.2ms idle=1925.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" = ?) [2767301] 08:32:49.772 [debug] QUERY OK source="tasks" db=0.1ms idle=1925.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" [2767301] 08:32:49.772 [debug] QUERY OK source="sources" db=0.1ms idle=1925.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" = ?) [43] 08:32:49.772 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1926.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" = ?) [282594] 08:32:49.772 [debug] QUERY OK source="settings" db=0.0ms idle=927.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:49.772 [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 [] 08:32:49.773 [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 [] 08:32:49.773 [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] 08:32:49.774 [info] Sent 200 in 3ms 08:32:54.463 [info] GET /sources/27/media/2673461 08:32:54.464 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2673461", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 08:32:54.464 [debug] QUERY OK source="media_items" db=0.1ms idle=1618.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" = ?) [2673461] 08:32:54.464 [debug] QUERY OK source="tasks" db=0.1ms idle=1618.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" [2673461] 08:32:54.465 [debug] QUERY OK source="sources" db=0.1ms idle=1618.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" = ?) [27] 08:32:54.465 [debug] QUERY OK source="settings" db=0.1ms idle=1614.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:54.465 [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 [] 08:32:54.465 [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 [] 08:32:54.466 [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] 08:32:54.467 [info] Sent 200 in 3ms 08:32:59.465 [info] GET /sources/57/media/2802698 08:32:59.465 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2802698", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:32:59.466 [debug] QUERY OK source="media_items" db=0.1ms idle=1620.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" = ?) [2802698] 08:32:59.466 [debug] QUERY OK source="tasks" db=0.1ms idle=1620.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" [2802698] 08:32:59.466 [debug] QUERY OK source="sources" db=0.1ms idle=1620.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" = ?) [57] 08:32:59.467 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=1607.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" IN (?,?)) [290090, 292519] 08:32:59.468 [debug] QUERY OK source="settings" db=0.0ms idle=606.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:59.468 [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 [] 08:32:59.468 [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 [] 08:32:59.469 [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] 08:32:59.470 [info] Sent 200 in 4ms 08:33:00.806 [info] {"source":"oban","duration":332,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:33:05.982 [info] {"source":"oban","duration":3903,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:33:06.825 [info] GET /media/753b3a5a-7ce0-4507-8dff-280eb2e43a4e/stream 08:33:06.825 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "753b3a5a-7ce0-4507-8dff-280eb2e43a4e"} Pipelines: [:maybe_basic_auth] 08:33:06.827 [debug] QUERY OK source="media_items" db=1.0ms idle=1979.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."uuid" = ?) ["753b3a5a-7ce0-4507-8dff-280eb2e43a4e"] 08:33:06.827 [debug] Invalid range request for media item: 753b3a5a-7ce0-4507-8dff-280eb2e43a4e - serving full file 08:33:06.827 [info] Sent 200 in 1ms 08:33:35.987 [info] {"source":"oban","duration":3613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:33:36.838 [info] GET /sources/30/media/2555753/force_download 08:33:36.838 [debug] QUERY OK source="settings" db=0.1ms idle=1509.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:36.838 [debug] QUERY OK source="settings" db=0.0ms idle=850.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:36.838 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:33:36.838 [error] #PID<0.189249.0> running PinchflatWeb.Endpoint (connection #PID<0.189245.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2555753/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/30/media/2555753/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2555753/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189249.0>, params: %{}, path_info: ["sources", "30", "media", "2555753", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2555753/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslx4f8p6nlLLMAR31C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2555753/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2555753/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2555753/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189249.0>, params: %{}, path_info: ["sources", "30", "media", "2555753", "force_download"], path_ (truncated) 08:33:41.727 [info] GET /sources/43/media/2798388/force_download 08:33:41.728 [debug] QUERY OK source="settings" db=0.1ms idle=1439.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:41.728 [debug] QUERY OK source="settings" db=0.0ms idle=1439.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 [] 08:33:41.728 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:33:41.728 [error] #PID<0.189250.0> running PinchflatWeb.Endpoint (connection #PID<0.189245.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2798388/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/43/media/2798388/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2798388/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189250.0>, params: %{}, path_info: ["sources", "43", "media", "2798388", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2798388/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKslyKtyEmXBh18AR32C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2798388/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2798388/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2798388/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYY1FGUU9fRC1laEtrWHBWcFNSQTJkMkdw.qpo4GZ2TcDPegFom_1CXNYkH7l4TJ2vjFjkmNimxmNo" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189250.0>, params: %{}, path_info: ["sources", "43", "media", "2798388", "force_download"], path_ (truncated) 08:33:47.646 [info] GET /sources/43/media/2790072 08:33:47.646 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2790072", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 08:33:47.646 [debug] QUERY OK source="media_items" db=0.2ms idle=1357.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" = ?) [2790072] 08:33:47.647 [debug] QUERY OK source="tasks" db=0.1ms idle=1301.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" [2790072] 08:33:47.647 [debug] QUERY OK source="sources" db=0.1ms idle=357.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" = ?) [43] 08:33:47.647 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=358.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" = ?) [286934] 08:33:47.647 [debug] QUERY OK source="settings" db=0.0ms idle=300.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:47.647 [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 [] 08:33:47.648 [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 [] 08:33:47.648 [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] 08:33:47.649 [info] Sent 200 in 3ms 08:33:52.568 [info] GET /sources/52/media/2778445 08:33:52.568 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2778445", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 08:33:52.568 [debug] QUERY OK source="media_items" db=0.2ms idle=1279.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" = ?) [2778445] 08:33:52.569 [debug] QUERY OK source="sources" db=0.1ms idle=1279.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" = ?) [52] 08:33:52.569 [debug] QUERY OK source="tasks" db=0.9ms idle=1279.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" [2778445] 08:33:52.570 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1217.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" IN (?,?)) [284831, 286702] 08:33:52.570 [debug] QUERY OK source="settings" db=0.0ms idle=216.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:52.570 [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 [] 08:33:52.570 [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 [] 08:33:52.571 [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] 08:33:52.572 [info] Sent 200 in 4ms 08:33:57.569 [info] GET /sources/27/media/2570930 08:33:57.569 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2570930", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 08:33:57.570 [debug] QUERY OK source="media_items" db=0.1ms idle=1280.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" = ?) [2570930] 08:33:57.570 [debug] QUERY OK source="tasks" db=0.1ms idle=1281.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" [2570930] 08:33:57.570 [debug] QUERY OK source="sources" db=0.1ms idle=1281.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" = ?) [27] 08:33:57.570 [debug] QUERY OK source="settings" db=0.0ms idle=1211.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:33:57.570 [debug] QUERY OK source="settings" db=0.0ms idle=210.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 [] 08:33:57.571 [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 [] 08:33:57.571 [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] 08:33:57.572 [info] Sent 200 in 3ms 08:34:00.809 [info] {"source":"oban","duration":375,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:34:02.570 [info] GET /sources/27/media/979286 08:34:02.571 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "979286", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 08:34:02.571 [debug] QUERY OK source="media_items" db=0.2ms idle=1282.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" = ?) [979286] 08:34:02.572 [debug] QUERY OK source="tasks" db=0.1ms idle=1282.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" [979286] 08:34:02.572 [debug] QUERY OK source="sources" db=0.1ms idle=1206.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" = ?) [27] 08:34:02.572 [debug] QUERY OK source="settings" db=0.0ms idle=283.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 [] 08:34:02.572 [debug] QUERY OK source="settings" db=0.0ms idle=205.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34: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 [] 08:34:02.573 [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] 08:34:02.574 [info] Sent 200 in 3ms 08:34:03.978 [info] GET /sources/43/media/2798388 08:34:03.978 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2798388", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 08:34:03.978 [debug] QUERY OK source="media_items" db=0.2ms idle=1405.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" = ?) [2798388] 08:34:03.979 [debug] QUERY OK source="tasks" db=0.1ms idle=1406.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" [2798388] 08:34:03.979 [debug] QUERY OK source="sources" db=0.1ms idle=1406.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" = ?) [43] 08:34:03.979 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1406.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" = ?) [288955] 08:34:03.979 [debug] QUERY OK source="settings" db=0.0ms idle=612.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 [] 08:34:03.979 [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 [] 08:34:03.980 [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 [] 08:34:03.980 [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] 08:34:03.981 [info] Sent 200 in 3ms 08:34:05.991 [info] {"source":"oban","duration":3481,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:08.870 [info] GET /sources/27/media/2706026 08:34:08.870 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2706026", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 08:34:08.871 [debug] QUERY OK source="media_items" db=0.3ms idle=1582.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" = ?) [2706026] 08:34:08.872 [debug] QUERY OK source="tasks" db=0.1ms idle=1582.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" [2706026] 08:34:08.872 [debug] QUERY OK source="sources" db=0.2ms idle=1582.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" = ?) [27] 08:34:08.872 [debug] QUERY OK source="settings" db=0.0ms idle=1498.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:08.872 [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 [] 08:34:08.873 [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 [] 08:34:08.873 [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] 08:34:08.874 [info] Sent 200 in 3ms 08:34:14.675 [info] GET /media/b4e221a8-952d-4976-9b42-82f779051a68/stream 08:34:14.675 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "b4e221a8-952d-4976-9b42-82f779051a68"} Pipelines: [:maybe_basic_auth] 08:34:14.676 [debug] QUERY OK source="media_items" db=0.7ms idle=386.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."uuid" = ?) ["b4e221a8-952d-4976-9b42-82f779051a68"] 08:34:14.676 [debug] Invalid range request for media item: b4e221a8-952d-4976-9b42-82f779051a68 - serving full file 08:34:14.677 [info] Sent 200 in 1ms 08:34:19.337 [info] GET /media/20254105-eb38-451f-a12b-dd5ee56be519/stream 08:34:19.337 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "20254105-eb38-451f-a12b-dd5ee56be519"} Pipelines: [:maybe_basic_auth] 08:34:19.338 [debug] QUERY OK source="media_items" db=0.8ms idle=1048.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" = ?) ["20254105-eb38-451f-a12b-dd5ee56be519"] 08:34:19.338 [debug] Invalid range request for media item: 20254105-eb38-451f-a12b-dd5ee56be519 - serving full file 08:34:19.338 [info] Sent 200 in 1ms 08:34:29.446 [info] GET /media/71270a71-a47d-49e1-b1c5-7c95f8eb8d3f/stream 08:34:29.447 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "71270a71-a47d-49e1-b1c5-7c95f8eb8d3f"} Pipelines: [:maybe_basic_auth] 08:34:29.448 [debug] QUERY OK source="media_items" db=0.9ms idle=1148.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" = ?) ["71270a71-a47d-49e1-b1c5-7c95f8eb8d3f"] 08:34:29.448 [debug] Invalid range request for media item: 71270a71-a47d-49e1-b1c5-7c95f8eb8d3f - serving full file 08:34:29.448 [info] Sent 200 in 1ms 08:34:30.961 [info] GET /media/a0f3f545-5b4a-4712-80c5-daa8df8f9b5a/stream 08:34:30.961 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a0f3f545-5b4a-4712-80c5-daa8df8f9b5a"} Pipelines: [:maybe_basic_auth] 08:34:30.962 [debug] QUERY OK source="media_items" db=0.9ms idle=1513.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" = ?) ["a0f3f545-5b4a-4712-80c5-daa8df8f9b5a"] 08:34:30.962 [debug] Invalid range request for media item: a0f3f545-5b4a-4712-80c5-daa8df8f9b5a - serving full file 08:34:30.962 [info] Sent 200 in 1ms 08:34:35.994 [info] {"source":"oban","duration":2725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:38.723 [info] {"args":{"id":30},"id":300551,"meta":{},"system_time":1777556078723146691,"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"]} 08:34:38.723 [debug] QUERY OK source="sources" db=0.3ms idle=1009.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" = ?) [30] 08:34:38.723 [debug] QUERY OK source="settings" db=0.1ms idle=17.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.728 [debug] QUERY OK source="media_items" db=4.4ms idle=18.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")))) [30] 08:34:38.729 [debug] QUERY OK source="media_items" db=0.3ms idle=12.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 08:34:38.729 [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] 08:34:38.729 [debug] QUERY OK source="settings" db=0.0ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.729 [debug] QUERY OK source="settings" db=0.0ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.732 [debug] QUERY OK source="media_items" db=2.9ms 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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 08:34:38.734 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:34:38.734 [debug] Current batch of media processed. Will check again in 1000ms 08:34:38.734 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.734 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.734 [debug] QUERY OK source="settings" db=0.0ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:34:38.734 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/fe/63/fe63b58076815ab6e57dee165c0f2620a284c67fd173970912fdd5b1d9c4f3b7.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/e5/a6/e5a61ee90a0f4714dbbc8cdd8e6b78a51b4a969e7e20e69fd41056b9869c6fee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:34:39.342 [info] GET /media/943bc686-9ef8-40ab-ad59-df5280814e05/stream 08:34:39.342 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "943bc686-9ef8-40ab-ad59-df5280814e05"} Pipelines: [:maybe_basic_auth] 08:34:39.342 [debug] QUERY OK source="media_items" db=0.4ms idle=612.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" = ?) ["943bc686-9ef8-40ab-ad59-df5280814e05"] 08:34:39.343 [debug] Invalid range request for media item: 943bc686-9ef8-40ab-ad59-df5280814e05 - serving full file 08:34:39.343 [info] Sent 200 in 907µs 08:34:39.735 [debug] Current batch of media processed. Will check again in 1000ms 08:34:40.736 [debug] Current batch of media processed. Will check again in 1000ms 08:34:41.737 [debug] Current batch of media processed. Will check again in 1000ms 08:34:42.738 [debug] Current batch of media processed. Will check again in 1000ms 08:34:43.739 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1328, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", "id" => "npKb9UAxDxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npKb9UAxDxQ", "playlist_index" => 1, "timestamp" => 1777483828, "title" => "The Future Of KDE Plasma Looks Incredible", "upload_date" => "20260429"} 08:34:43.739 [debug] QUERY OK source="sources" db=0.2ms idle=1033.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 (?)) [30] 08:34:43.740 [debug] QUERY OK source="sources" db=0.1ms idle=1034.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" = ?) [30] 08:34:43.741 [debug] QUERY OK source="media_items" db=1.2ms idle=1034.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 08:34:43.742 [debug] QUERY OK source="media_items" db=0.8ms idle=1019.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "89d4f4a5-75c8-4547-894b-d2bb6e739e5d", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 13:34:43Z], ~U[2026-04-30 13:34:43Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 08:34:43.743 [debug] QUERY OK source="sources" db=0.1ms idle=19.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" = ?) [30] 08:34:43.743 [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] 08:34:43.743 [debug] QUERY OK source="media_items" db=0.1ms 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 [2838902] 08:34:43.743 [debug] Current batch of media processed. Will check again in 1000ms 08:34:44.345 [info] GET /media/4aec2aa0-e40c-4120-8631-2264d407c5a5/stream 08:34:44.346 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "4aec2aa0-e40c-4120-8631-2264d407c5a5"} Pipelines: [:maybe_basic_auth] 08:34:44.351 [debug] QUERY OK source="media_items" db=4.7ms idle=604.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" = ?) ["4aec2aa0-e40c-4120-8631-2264d407c5a5"] 08:34:44.351 [debug] Invalid range request for media item: 4aec2aa0-e40c-4120-8631-2264d407c5a5 - serving full file 08:34:44.351 [info] Sent 200 in 5ms 08:34:45.142 [debug] Current batch of media processed. Will check again in 1000ms 08:34:46.286 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1567, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", "id" => "lIK4hKCXZHs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lIK4hKCXZHs", "playlist_index" => 2, "timestamp" => 1777397422, "title" => "Valve has Cooked Up Something Amazing", "upload_date" => "20260428"} 08:34:46.286 [debug] QUERY OK source="sources" db=0.2ms idle=0.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 (?)) [30] 08:34:46.286 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 08:34:46.291 [debug] QUERY OK source="media_items" db=4.4ms idle=1.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 08:34:46.293 [debug] QUERY OK source="media_items" db=1.2ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "00b7a903-9f00-458f-8b9e-e2e331783dbc", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 13:34:46Z], ~U[2026-04-30 13:34:46Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 08:34:46.293 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 08:34:46.293 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:34:46.294 [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 [2831238] 08:34:46.294 [debug] Current batch of media processed. Will check again in 1000ms 08:34:47.295 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1123, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", "id" => "tLKOH-CUWyI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tLKOH-CUWyI", "playlist_index" => 3, "timestamp" => 1777311030, "title" => "Protect Your Linux Desktop From Malicious USB Devices", "upload_date" => "20260427"} 08:34:47.295 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [30] 08:34:47.296 [debug] QUERY OK source="sources" db=0.1ms idle=1002.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" = ?) [30] 08:34:47.300 [debug] QUERY OK source="media_items" db=4.1ms idle=1002.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 08:34:47.301 [debug] QUERY OK source="media_items" db=0.8ms idle=1006.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "c589cba0-67f4-4c0f-bbc0-f511192fc954", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 13:34:47Z], ~U[2026-04-30 13:34:47Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 08:34:47.302 [debug] QUERY OK source="sources" db=0.1ms idle=13.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" = ?) [30] 08:34:47.302 [debug] QUERY OK source="media_profiles" db=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] 08:34:47.302 [debug] QUERY OK source="media_items" db=0.1ms 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 [2823571] 08:34:47.302 [debug] Current batch of media processed. Will check again in 1000ms 08:34:48.303 [debug] Current batch of media processed. Will check again in 1000ms 08:34:49.304 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1104, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", "id" => "989vCMg3Qv8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=989vCMg3Qv8", "playlist_index" => 4, "timestamp" => 1777224603, "title" => "One Maintainer Is All It Takes To Break A Project", "upload_date" => "20260426"} 08:34:49.304 [debug] QUERY OK source="sources" db=0.1ms idle=980.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 (?)) [30] 08:34:49.304 [debug] QUERY OK source="sources" db=0.1ms idle=980.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" = ?) [30] 08:34:49.309 [debug] QUERY OK source="media_items" db=4.6ms idle=980.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 08:34:49.311 [debug] QUERY OK source="media_items" db=1.1ms idle=985.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "47637778-d162-4ddb-9bca-577d4109d81c", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 13:34:49Z], ~U[2026-04-30 13:34:49Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 08:34:49.311 [debug] QUERY OK source="sources" db=0.1ms idle=19.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" = ?) [30] 08:34:49.311 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:34:49.312 [debug] QUERY OK source="media_items" db=0.2ms 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 [2816002] 08:34:49.312 [debug] Current batch of media processed. Will check again in 1000ms 08:34:50.312 [debug] Current batch of media processed. Will check again in 1000ms 08:34:51.314 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 968, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", "id" => "kvMBenjrbOA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kvMBenjrbOA", "playlist_index" => 5, "timestamp" => 1777138210, "title" => "There's No Way This Web Extension Is Real", "upload_date" => "20260425"} 08:34:51.314 [debug] QUERY OK source="sources" db=0.2ms idle=990.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 (?)) [30] 08:34:51.315 [debug] QUERY OK source="sources" db=0.1ms idle=990.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" = ?) [30] 08:34:51.319 [debug] QUERY OK source="media_items" db=4.5ms idle=991.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 08:34:51.341 [debug] QUERY OK source="media_items" db=21.1ms idle=996.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "fe2f8bb7-5189-4eac-acf0-64e29d602181", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 13:34:51Z], ~U[2026-04-30 13:34:51Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 08:34:51.342 [debug] QUERY OK source="sources" db=0.2ms idle=46.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" = ?) [30] 08:34:51.342 [debug] QUERY OK source="media_profiles" db=0.1ms idle=27.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] 08:34:51.342 [debug] QUERY OK source="media_items" db=0.2ms idle=27.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 [2808334] 08:34:51.342 [debug] Current batch of media processed. Will check again in 1000ms 08:34:52.344 [debug] Current batch of media processed. Will check again in 1000ms 08:34:53.345 [debug] Current batch of media processed. Will check again in 1000ms 08:34:54.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 926, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", "id" => "I4sP8K8c6yc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I4sP8K8c6yc", "playlist_index" => 6, "timestamp" => 1776965404, "title" => "Oxygen Squared The KDE Design We Never Had", "upload_date" => "20260423"} 08:34:54.346 [debug] QUERY OK source="sources" db=0.2ms idle=1022.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 (?)) [30] 08:34:54.346 [debug] QUERY OK source="sources" db=0.1ms idle=1022.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" = ?) [30] 08:34:54.351 [debug] QUERY OK source="media_items" db=4.5ms idle=1022.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 08:34:54.370 [debug] QUERY OK source="media_items" db=18.4ms idle=1027.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "14b938fb-048c-466a-97c8-76a1f01d9b79", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 13:34:54Z], ~U[2026-04-30 13:34:54Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 08:34:54.371 [debug] QUERY OK source="sources" db=0.2ms idle=71.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" = ?) [30] 08:34:54.371 [debug] QUERY OK source="media_profiles" db=0.1ms idle=24.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] 08:34:54.371 [debug] QUERY OK source="media_items" db=0.2ms idle=24.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 [2793046] 08:34:54.371 [debug] Current batch of media processed. Will check again in 1000ms 08:34:54.451 [info] GET /media/77e224f9-b416-4cd3-805b-6bdb177baf1f/stream 08:34:54.451 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "77e224f9-b416-4cd3-805b-6bdb177baf1f"} Pipelines: [:maybe_basic_auth] 08:34:54.456 [debug] QUERY OK source="media_items" db=5.0ms idle=100.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" = ?) ["77e224f9-b416-4cd3-805b-6bdb177baf1f"] 08:34:54.456 [debug] Invalid range request for media item: 77e224f9-b416-4cd3-805b-6bdb177baf1f - serving full file 08:34:54.456 [info] Sent 200 in 5ms 08:34:55.373 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1136, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", "id" => "7YPnh6dlyQQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "playlist_index" => 7, "timestamp" => 1776879004, "title" => "IPv8 Changes Everything We Know About IP", "upload_date" => "20260422"} 08:34:55.373 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [30] 08:34:55.374 [debug] QUERY OK source="sources" db=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" = ?) [30] 08:34:55.378 [debug] QUERY OK source="media_items" db=4.4ms idle=1002.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 08:34:55.380 [debug] QUERY OK source="media_items" db=1.3ms idle=922.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "4e8458ec-80a2-4809-9ef5-0145ad6cab53", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 13:34:55Z], ~U[2026-04-30 13:34:55Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 08:34:55.380 [debug] QUERY OK source="sources" db=0.2ms idle=79.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" = ?) [30] 08:34:55.381 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:34:55.381 [debug] QUERY OK source="media_items" db=0.2ms 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 [2785377] 08:34:55.381 [debug] Current batch of media processed. Will check again in 1000ms 08:34:56.382 [debug] Current batch of media processed. Will check again in 1000ms 08:34:57.383 [debug] Current batch of media processed. Will check again in 1000ms 08:34:58.384 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1109, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", "id" => "a4BxvWs9PGE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=a4BxvWs9PGE", "playlist_index" => 8, "timestamp" => 1776792600, "title" => "Github Hates That This Repo Still Exists", "upload_date" => "20260421"} 08:34:58.385 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1060.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 (?)) [30] 08:34:58.385 [debug] QUERY OK source="sources" db=0.0ms idle=1061.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" = ?) [30] 08:34:58.390 [debug] QUERY OK source="media_items" db=4.5ms idle=1061.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 08:34:58.391 [debug] QUERY OK source="media_items" db=0.9ms idle=1066.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "4300aed5-c082-419a-9adf-aa1a8eebcceb", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 13:34:58Z], ~U[2026-04-30 13:34:58Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 08:34:58.391 [debug] QUERY OK source="sources" db=0.1ms idle=85.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" = ?) [30] 08:34:58.392 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:34:58.392 [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 [2777718] 08:34:58.392 [debug] Current batch of media processed. Will check again in 1000ms 08:34:59.393 [debug] Current batch of media processed. Will check again in 1000ms 08:35:00.394 [debug] Current batch of media processed. Will check again in 1000ms 08:35:00.810 [info] {"source":"oban","duration":529,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:35:01.395 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1304, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", "id" => "83heISygLyA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=83heISygLyA", "playlist_index" => 9, "timestamp" => 1776706202, "title" => "Bizarre World Of Wikipedia Deleting Programming Pages", "upload_date" => "20260420"} 08:35:01.396 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1071.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 (?)) [30] 08:35:01.396 [debug] QUERY OK source="sources" db=0.0ms idle=1072.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" = ?) [30] 08:35:01.400 [debug] QUERY OK source="media_items" db=4.3ms idle=1072.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 08:35:01.404 [debug] QUERY OK source="media_items" db=3.0ms idle=590.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "b542d43e-edee-4b6c-974f-88b5bbe5a072", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 13:35:01Z], ~U[2026-04-30 13:35:01Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 08:35:01.404 [debug] QUERY OK source="sources" db=0.1ms idle=94.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" = ?) [30] 08:35:01.405 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:35:01.405 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2769902] 08:35:01.405 [debug] Current batch of media processed. Will check again in 1000ms 08:35:02.406 [debug] Current batch of media processed. Will check again in 1000ms 08:35:03.407 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1083, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", "id" => "g9TEuezEm9c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g9TEuezEm9c", "playlist_index" => 10, "timestamp" => 1776619810, "title" => "The Linux Kernel Has Ancient Weird Problems", "upload_date" => "20260419"} 08:35:03.408 [debug] QUERY OK source="sources" db=0.1ms idle=95.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 (?)) [30] 08:35:03.408 [debug] QUERY OK source="sources" db=0.1ms idle=84.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" = ?) [30] 08:35:03.412 [debug] QUERY OK source="media_items" db=4.4ms idle=84.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 08:35:03.414 [debug] QUERY OK source="media_items" db=1.1ms idle=89.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "23eb7e28-b6f0-4baf-8328-074dbf7ae8c8", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 13:35:03Z], ~U[2026-04-30 13:35:03Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 08:35:03.414 [debug] QUERY OK source="sources" db=0.1ms idle=90.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" = ?) [30] 08:35:03.415 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:03.415 [debug] QUERY OK source="media_items" db=0.2ms 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 [2761936] 08:35:03.415 [debug] Current batch of media processed. Will check again in 1000ms 08:35:04.353 [info] GET /media/8a9a5a29-d985-4e51-ba57-c3a7c4059e3d/stream 08:35:04.353 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "8a9a5a29-d985-4e51-ba57-c3a7c4059e3d"} Pipelines: [:maybe_basic_auth] 08:35:04.355 [debug] QUERY OK source="media_items" db=1.6ms idle=939.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."uuid" = ?) ["8a9a5a29-d985-4e51-ba57-c3a7c4059e3d"] 08:35:04.355 [debug] Invalid range request for media item: 8a9a5a29-d985-4e51-ba57-c3a7c4059e3d - serving full file 08:35:04.355 [info] Sent 200 in 2ms 08:35:04.725 [debug] Current batch of media processed. Will check again in 1000ms 08:35:05.726 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1064, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", "id" => "HRsdi7YJ8dI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "playlist_index" => 11, "timestamp" => 1776533409, "title" => "I'm Conflicted About Future Of Open Source", "upload_date" => "20260418"} 08:35:05.726 [debug] QUERY OK source="sources" db=0.2ms idle=1371.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 (?)) [30] 08:35:05.726 [debug] QUERY OK source="sources" db=0.1ms idle=410.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" = ?) [30] 08:35:05.731 [debug] QUERY OK source="media_items" db=4.4ms idle=403.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 08:35:05.733 [debug] QUERY OK source="media_items" db=1.1ms idle=407.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "7e6d50ac-0879-4ac4-aa23-657ec0663b14", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 13:35:05Z], ~U[2026-04-30 13:35:05Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 08:35:05.733 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 08:35:05.733 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:05.734 [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 [2753905] 08:35:05.734 [debug] Current batch of media processed. Will check again in 1000ms 08:35:05.998 [info] {"source":"oban","duration":3587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:06.735 [debug] Current batch of media processed. Will check again in 1000ms 08:35:07.736 [debug] Current batch of media processed. Will check again in 1000ms 08:35:08.737 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1191, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", "id" => "xToLWuGLSNs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xToLWuGLSNs", "playlist_index" => 12, "timestamp" => 1776360613, "title" => "Linux Kernel Would Randomly Explode In The Past", "upload_date" => "20260416"} 08:35:08.737 [debug] QUERY OK source="sources" db=0.3ms idle=1413.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 (?)) [30] 08:35:08.738 [debug] QUERY OK source="sources" db=0.1ms idle=1414.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" = ?) [30] 08:35:08.745 [debug] QUERY OK source="media_items" db=7.3ms idle=1414.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 08:35:08.747 [debug] QUERY OK source="media_items" db=1.3ms idle=1422.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "e6302cc8-4834-4365-9177-696d94fe8b2a", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 13:35:08Z], ~U[2026-04-30 13:35:08Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 08:35:08.748 [debug] QUERY OK source="sources" db=0.2ms idle=427.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" = ?) [30] 08:35:08.748 [debug] QUERY OK source="media_profiles" db=0.1ms idle=10.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] 08:35:08.749 [debug] QUERY OK source="media_items" db=0.2ms idle=10.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 [2739256] 08:35:08.749 [debug] Current batch of media processed. Will check again in 1000ms 08:35:09.356 [info] GET /sources/30/media/2509115 08:35:09.356 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2509115", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 08:35:09.357 [debug] QUERY OK source="media_items" db=0.2ms idle=609.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" = ?) [2509115] 08:35:09.357 [debug] QUERY OK source="tasks" db=0.1ms idle=608.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" [2509115] 08:35:09.357 [debug] QUERY OK source="sources" db=0.3ms idle=608.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" = ?) [30] 08:35:09.358 [debug] QUERY OK source="settings" db=0.0ms idle=608.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:09.358 [debug] QUERY OK source="settings" db=0.0ms idle=35.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:09.358 [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 [] 08:35:09.359 [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] 08:35:09.360 [info] Sent 200 in 3ms 08:35:09.750 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1221, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", "id" => "KQu1oRRVAVo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KQu1oRRVAVo", "playlist_index" => 13, "timestamp" => 1776274207, "title" => "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "upload_date" => "20260415"} 08:35:09.750 [debug] QUERY OK source="sources" db=0.2ms idle=392.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 (?)) [30] 08:35:09.751 [debug] QUERY OK source="sources" db=0.1ms idle=393.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" = ?) [30] 08:35:09.755 [debug] QUERY OK source="media_items" db=4.4ms idle=393.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 08:35:09.757 [debug] QUERY OK source="media_items" db=1.6ms idle=397.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "944b2c77-3c78-4685-a8c4-1969edc00604", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 13:35:09Z], ~U[2026-04-30 13:35:09Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 08:35:09.758 [debug] QUERY OK source="sources" db=0.2ms idle=398.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" = ?) [30] 08:35:09.758 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:35:09.759 [debug] QUERY OK source="media_items" db=0.2ms 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 [2737248] 08:35:09.759 [debug] Current batch of media processed. Will check again in 1000ms 08:35:10.760 [debug] Current batch of media processed. Will check again in 1000ms 08:35:11.761 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1388, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", "id" => "3ojCgjkGzX0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3ojCgjkGzX0", "playlist_index" => 14, "timestamp" => 1776187801, "title" => "Valve Changes Everything For Low VRAM GPUs On Linux", "upload_date" => "20260414"} 08:35:11.761 [debug] QUERY OK source="sources" db=0.2ms idle=437.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 (?)) [30] 08:35:11.762 [debug] QUERY OK source="sources" db=0.1ms idle=437.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" = ?) [30] 08:35:11.766 [debug] QUERY OK source="media_items" db=4.8ms idle=438.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 08:35:11.768 [debug] QUERY OK source="media_items" db=0.8ms idle=443.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "07e9a71b-b17c-4cf9-aae9-523f7b9fdd58", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 13:35:11Z], ~U[2026-04-30 13:35:11Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 08:35:11.768 [debug] QUERY OK source="sources" db=0.1ms idle=442.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" = ?) [30] 08:35:11.768 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:11.769 [debug] QUERY OK source="media_items" db=0.2ms 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 [2729471] 08:35:11.769 [debug] Current batch of media processed. Will check again in 1000ms 08:35:12.770 [debug] Current batch of media processed. Will check again in 1000ms 08:35:13.771 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1405, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", "id" => "-3MJA0NfvRE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-3MJA0NfvRE", "playlist_index" => 15, "timestamp" => 1776101400, "title" => "Console Hackers Put Linux On Everything", "upload_date" => "20260413"} 08:35:13.772 [debug] QUERY OK source="sources" db=0.4ms idle=448.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 (?)) [30] 08:35:13.773 [debug] QUERY OK source="sources" db=0.2ms idle=448.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" = ?) [30] 08:35:13.777 [debug] QUERY OK source="media_items" db=4.5ms idle=449.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 08:35:13.779 [debug] QUERY OK source="media_items" db=0.9ms idle=454.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "a9600182-9a53-49fe-9d71-b786dbe87f8f", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 13:35:13Z], ~U[2026-04-30 13:35:13Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 08:35:13.779 [debug] QUERY OK source="sources" db=0.1ms idle=450.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" = ?) [30] 08:35:13.779 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:13.780 [debug] QUERY OK source="media_items" db=0.2ms 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 [2721843] 08:35:13.780 [debug] Current batch of media processed. Will check again in 1000ms 08:35:14.357 [info] GET /sources/45/media/2456354 08:35:14.357 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2456354", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 08:35:14.358 [debug] QUERY OK source="media_items" db=0.1ms idle=578.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" = ?) [2456354] 08:35:14.358 [debug] QUERY OK source="tasks" db=0.0ms idle=578.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" [2456354] 08:35:14.358 [debug] QUERY OK source="sources" db=0.1ms idle=578.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" = ?) [45] 08:35:14.358 [debug] QUERY OK source="settings" db=0.1ms idle=578.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:14.359 [debug] QUERY OK source="settings" db=0.0ms idle=28.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:14.359 [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 [] 08:35:14.359 [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] 08:35:14.360 [info] Sent 200 in 3ms 08:35:14.780 [debug] Current batch of media processed. Will check again in 1000ms 08:35:15.782 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 716, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", "id" => "yiuQB1Dq3Xk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "playlist_index" => 16, "timestamp" => 1776015028, "title" => "The Linux Kernel Eliminated This Entire C Function", "upload_date" => "20260412"} 08:35:15.782 [debug] QUERY OK source="sources" db=0.2ms idle=1423.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 (?)) [30] 08:35:15.782 [debug] QUERY OK source="sources" db=0.1ms idle=1423.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" = ?) [30] 08:35:15.789 [debug] QUERY OK source="media_items" db=6.2ms idle=1423.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 08:35:15.791 [debug] QUERY OK source="media_items" db=1.2ms idle=1429.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "2683ea83-db7d-4149-857a-1bf3096ba3c4", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 13:35:15Z], ~U[2026-04-30 13:35:15Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 08:35:15.791 [debug] QUERY OK source="sources" db=0.1ms idle=459.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" = ?) [30] 08:35:15.791 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:15.792 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2714041] 08:35:15.792 [debug] Current batch of media processed. Will check again in 1000ms 08:35:16.793 [debug] Current batch of media processed. Will check again in 1000ms 08:35:17.794 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 806, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", "id" => "uMDwmg7i2_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uMDwmg7i2_4", "playlist_index" => 17, "timestamp" => 1775928629, "title" => "\"Copilot Is For Entertainment Purposes Only\"", "upload_date" => "20260411"} 08:35:17.795 [debug] QUERY OK source="sources" db=0.2ms idle=470.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 (?)) [30] 08:35:17.795 [debug] QUERY OK source="sources" db=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" = ?) [30] 08:35:17.800 [debug] QUERY OK source="media_items" db=4.6ms idle=471.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 08:35:17.801 [debug] QUERY OK source="media_items" db=1.1ms idle=476.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "dacc92dc-5bec-4901-babf-9d1c613a58a2", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 13:35:17Z], ~U[2026-04-30 13:35:17Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 08:35:17.802 [debug] QUERY OK source="sources" db=0.2ms idle=467.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" = ?) [30] 08:35:17.802 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:17.802 [debug] QUERY OK source="media_items" db=0.2ms 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 [2706404] 08:35:17.803 [debug] Current batch of media processed. Will check again in 1000ms 08:35:18.804 [debug] Current batch of media processed. Will check again in 1000ms 08:35:19.805 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", "id" => "Sk11hvLZiEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk11hvLZiEA", "playlist_index" => 18, "timestamp" => 1775755805, "title" => "The Linux Open Source Document Editors Are Fighting", "upload_date" => "20260409"} 08:35:19.805 [debug] QUERY OK source="sources" db=0.2ms idle=481.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 (?)) [30] 08:35:19.806 [debug] QUERY OK source="sources" db=0.1ms idle=481.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" = ?) [30] 08:35:19.810 [debug] QUERY OK source="media_items" db=4.3ms idle=482.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 08:35:19.812 [debug] QUERY OK source="media_items" db=1.1ms idle=486.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "7817174b-42a2-42b0-a735-bc67a6c38d7b", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 13:35:19Z], ~U[2026-04-30 13:35:19Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 08:35:19.812 [debug] QUERY OK source="sources" db=0.1ms idle=474.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" = ?) [30] 08:35:19.812 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:35:19.813 [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 [2690052] 08:35:19.813 [debug] Current batch of media processed. Will check again in 1000ms 08:35:20.814 [debug] Current batch of media processed. Will check again in 1000ms 08:35:21.278 [info] GET /media/2e3b0b81-bf56-425e-9899-1133149522c4/stream 08:35:21.278 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "2e3b0b81-bf56-425e-9899-1133149522c4"} Pipelines: [:maybe_basic_auth] 08:35:21.280 [debug] QUERY OK source="media_items" db=2.0ms idle=1466.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" = ?) ["2e3b0b81-bf56-425e-9899-1133149522c4"] 08:35:21.280 [debug] Invalid range request for media item: 2e3b0b81-bf56-425e-9899-1133149522c4 - serving full file 08:35:21.280 [info] Sent 200 in 2ms 08:35:21.815 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 823, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", "id" => "4XN_1MVwZJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "playlist_index" => 19, "timestamp" => 1775669401, "title" => "This One Annoying Linux Problem Is Finally Ending", "upload_date" => "20260408"} 08:35:21.816 [debug] QUERY OK source="sources" db=0.2ms idle=2003.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 (?)) [30] 08:35:21.816 [debug] QUERY OK source="sources" db=0.3ms idle=2003.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" = ?) [30] 08:35:21.821 [debug] QUERY OK source="media_items" db=4.6ms idle=2003.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 08:35:21.823 [debug] QUERY OK source="media_items" db=1.1ms idle=1482.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "ec2bbf12-e85c-4294-b8a4-fc0609c91fef", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 13:35:21Z], ~U[2026-04-30 13:35:21Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 08:35:21.823 [debug] QUERY OK source="sources" db=0.2ms idle=542.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" = ?) [30] 08:35:21.824 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:35:21.824 [debug] QUERY OK source="media_items" db=0.1ms 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 [2681964] 08:35:21.824 [debug] Current batch of media processed. Will check again in 1000ms 08:35:22.824 [debug] Current batch of media processed. Will check again in 1000ms 08:35:23.343 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/fe/63/fe63b58076815ab6e57dee165c0f2620a284c67fd173970912fdd5b1d9c4f3b7.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/e5/a6/e5a61ee90a0f4714dbbc8cdd8e6b78a51b4a969e7e20e69fd41056b9869c6fee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 08:35:23.343 [debug] Gracefully stopping file follower 08:35:23.344 [debug] QUERY OK source="sources" db=0.1ms idle=381.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 (?)) [30] 08:35:23.344 [debug] QUERY OK source="sources" db=0.0ms idle=382.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" = ?) [30] 08:35:23.350 [debug] QUERY OK source="media_items" db=5.8ms idle=382.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 08:35:23.351 [debug] QUERY OK source="media_items" db=1.0ms idle=388.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "d0f95013-c7c3-43f2-a7cd-2bbfa2c63d59", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 08:35:23.352 [debug] QUERY OK source="sources" db=0.1ms idle=387.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" = ?) [30] 08:35:23.357 [debug] QUERY OK source="media_items" db=4.6ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 08:35:23.359 [debug] QUERY OK source="media_items" db=1.4ms idle=12.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "8623bc79-e2f1-4fa2-b2d9-864e7cc065a0", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 08:35:23.360 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.364 [debug] QUERY OK source="media_items" db=4.3ms idle=8.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 08:35:23.366 [debug] QUERY OK source="media_items" db=1.1ms idle=12.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "d422b3c7-d0bc-4a07-883b-30deb91c4a94", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 08:35:23.366 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.371 [debug] QUERY OK source="media_items" db=4.3ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 08:35:23.372 [debug] QUERY OK source="media_items" db=1.1ms idle=11.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "7dae6733-9077-4e80-b222-80def76f0180", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 08:35:23.373 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 08:35:23.378 [debug] QUERY OK source="media_items" db=4.4ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 08:35:23.379 [debug] QUERY OK source="media_items" db=1.1ms idle=11.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "6d3146b8-2f20-40b7-b455-c7f9adf8f912", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 08:35:23.380 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.385 [debug] QUERY OK source="media_items" db=4.4ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 08:35:23.386 [debug] QUERY OK source="media_items" db=1.0ms idle=11.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "e171dd76-e1e3-4906-98b8-5ea99f400297", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 08:35:23.387 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 08:35:23.391 [debug] QUERY OK source="media_items" db=4.1ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 08:35:23.393 [debug] QUERY OK source="media_items" db=1.1ms idle=11.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "ec99e7c2-b90e-499b-bf52-189f663b16b8", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 08:35:23.394 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.398 [debug] QUERY OK source="media_items" db=4.1ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 08:35:23.399 [debug] QUERY OK source="media_items" db=1.0ms idle=11.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "79477f49-b43b-439f-a47d-c4743e3258d2", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 08:35:23.400 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.404 [debug] QUERY OK source="media_items" db=4.2ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 08:35:23.406 [debug] QUERY OK source="media_items" db=1.1ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "4bd0e49d-1d07-492e-82f8-b39c56f39f8c", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 08:35:23.407 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.411 [debug] QUERY OK source="media_items" db=4.1ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 08:35:23.415 [debug] QUERY OK source="media_items" db=3.4ms idle=11.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "37ea247e-d5d0-4878-b1e6-fc497be27ae5", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 08:35:23.416 [debug] QUERY OK source="sources" db=0.6ms idle=10.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" = ?) [30] 08:35:23.420 [debug] QUERY OK source="media_items" db=4.1ms idle=9.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 08:35:23.421 [debug] QUERY OK source="media_items" db=1.1ms idle=13.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "79136564-3a2e-43e9-a395-843b0913a6f8", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 08:35:23.422 [debug] QUERY OK source="sources" db=0.6ms idle=10.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" = ?) [30] 08:35:23.427 [debug] QUERY OK source="media_items" db=4.2ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 08:35:23.428 [debug] QUERY OK source="media_items" db=1.0ms idle=11.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "78e1ed46-e184-4caa-ab0b-bee476e7e13d", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 08:35:23.429 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.433 [debug] QUERY OK source="media_items" db=4.1ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 08:35:23.435 [debug] QUERY OK source="media_items" db=1.2ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "9b805eb6-6ea7-4d1b-aa77-1e3dcdf9fd2e", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 08:35:23.435 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.440 [debug] QUERY OK source="media_items" db=4.2ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 08:35:23.441 [debug] QUERY OK source="media_items" db=1.0ms idle=11.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "0c289b74-4f02-48d8-a8f1-e38e2ee53298", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 08:35:23.442 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.446 [debug] QUERY OK source="media_items" db=4.1ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 08:35:23.448 [debug] QUERY OK source="media_items" db=1.0ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "a30e39ce-733a-436e-af60-63baf595a36b", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 08:35:23.448 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.453 [debug] QUERY OK source="media_items" db=4.2ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 08:35:23.454 [debug] QUERY OK source="media_items" db=1.1ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "9685eca6-20ee-4fbb-9047-d19a8f738f52", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 08:35:23.455 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.459 [debug] QUERY OK source="media_items" db=4.0ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 08:35:23.461 [debug] QUERY OK source="media_items" db=1.1ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "7bc409dd-4f0b-45ce-b6e8-cf1b56d4d3bd", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 08:35:23.461 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.466 [debug] QUERY OK source="media_items" db=4.8ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 08:35:23.468 [debug] QUERY OK source="media_items" db=1.2ms idle=11.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "06135ca6-3870-4f32-a62d-aff46bf2d514", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 08:35:23.469 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 08:35:23.473 [debug] QUERY OK source="media_items" db=4.1ms idle=8.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 08:35:23.475 [debug] QUERY OK source="media_items" db=1.2ms idle=11.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "be65d7d0-ca6e-4a8b-b65a-1321678a2606", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 08:35:23.476 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 08:35:23.480 [debug] QUERY OK source="media_items" db=4.3ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 17:30:06Z], 30] 08:35:23.481 [debug] QUERY OK source="media_items" db=0.9ms idle=11.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "c6ec0860-8aec-4528-9439-64c6a1966a7b", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, false, false, 30, [], 98, ~U[2026-04-07 17:30:06Z], ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], "Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, 30, ~U[2026-04-07 17:30:06Z]] 08:35:23.482 [debug] QUERY OK source="sources" db=0.5ms idle=8.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z], 30] 08:35:23.486 [debug] QUERY OK source="media_items" db=4.2ms 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 ((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")))) [30] 08:35:23.491 [debug] QUERY OK source="media_items" db=4.2ms idle=11.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")))) [30] 08:35:23.492 [debug] QUERY OK source="media_items" db=0.7ms idle=10.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 08:35:23.494 [debug] QUERY OK source="tasks" db=0.5ms idle=6.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300596, 30, ~U[2026-04-30 13:35:23Z], ~U[2026-04-30 13:35:23Z]] 08:35:23.494 [info] {"args":{"id":30},"id":300551,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":44771023,"event":"job:stop","queue_time":882108,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:35:28.583 [info] GET /media/4198d884-0c7c-4216-8a89-0e64920128d3/stream 08:35:28.583 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "4198d884-0c7c-4216-8a89-0e64920128d3"} Pipelines: [:maybe_basic_auth] 08:35:28.584 [debug] QUERY OK source="media_items" db=0.9ms idle=1621.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" = ?) ["4198d884-0c7c-4216-8a89-0e64920128d3"] 08:35:28.584 [debug] Invalid range request for media item: 4198d884-0c7c-4216-8a89-0e64920128d3 - serving full file 08:35:28.585 [info] Sent 200 in 1ms 08:35:33.585 [info] GET /media/743c7ac4-722c-4d95-8f51-1261e2b1f3e8/stream 08:35:33.585 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "743c7ac4-722c-4d95-8f51-1261e2b1f3e8"} Pipelines: [:maybe_basic_auth] 08:35:33.586 [debug] QUERY OK source="media_items" db=0.8ms idle=1608.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."uuid" = ?) ["743c7ac4-722c-4d95-8f51-1261e2b1f3e8"] 08:35:33.586 [debug] Invalid range request for media item: 743c7ac4-722c-4d95-8f51-1261e2b1f3e8 - serving full file 08:35:33.586 [info] Sent 200 in 1ms 08:35:36.002 [info] {"source":"oban","duration":3830,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:39.540 [info] GET /sources/55 08:35:39.540 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "55"} Pipelines: [:browser] 08:35:39.541 [debug] QUERY OK source="sources" db=0.1ms idle=1553.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" = ?) [55] 08:35:39.541 [debug] QUERY OK source="media_profiles" db=0.1ms idle=579.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] 08:35:39.544 [debug] QUERY OK source="tasks" db=2.9ms idle=579.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 (?,?,?,?)) [55, "executing", "available", "scheduled", "retryable"] 08:35:39.544 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=582.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" = ?) [299514] 08:35:39.545 [debug] QUERY OK source="settings" db=0.0ms idle=556.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 [] 08:35:39.545 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:39.545 [debug] QUERY OK source="settings" db=0.1ms idle=4.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 [] 08:35:39.546 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [55] 08:35:39.547 [debug] QUERY OK source="media_items" db=0.2ms 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 ((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")))) [55] 08:35:39.547 [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 ? [55, 10, 0] 08:35:39.548 [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" = ?) [55] 08:35:39.548 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [55] 08:35:39.549 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 ? [55, 10, 0] 08:35:39.549 [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" = ?) [55] 08:35:39.550 [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"))))) [55] 08:35:39.550 [debug] QUERY OK source="media_items" db=0.4ms 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 ? [55, 10, 0] 08:35:39.551 [info] Sent 200 in 11ms 08:35:42.775 [info] GET /media_profiles/3 08:35:42.775 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 08:35:42.775 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1813.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 WHERE (m0."id" = ?) [3] 08:35:42.777 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1813.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."media_profile_id" = ?) ORDER BY s0."custom_name" [3] 08:35:42.777 [debug] QUERY OK source="settings" db=0.0ms idle=1815.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:42.777 [debug] QUERY OK source="settings" db=0.0ms idle=1785.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:42.777 [debug] QUERY OK source="settings" db=0.0ms idle=784.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:42.778 [info] Sent 200 in 3ms 08:35:49.391 [info] GET /sources/27/force_download_pending 08:35:49.392 [debug] QUERY OK source="settings" db=0.1ms idle=1429.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:49.392 [debug] QUERY OK source="settings" db=0.1ms idle=1430.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:49.392 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:35:49.392 [error] #PID<0.189322.0> running PinchflatWeb.Endpoint (connection #PID<0.189321.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/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/27/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60092}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189322.0>, params: %{}, path_info: ["sources", "27", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsl5mTLuCTSTzMAUWiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60092}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60092}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189322.0>, params: %{}, path_info: ["sources", "27", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/forc (truncated) 08:35:53.298 [info] GET /sources/22/media/315242 08:35:53.298 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "315242", "source_id" => "22"} Pipelines: [:browser] 08:35:53.298 [debug] QUERY OK source="media_items" db=0.2ms idle=1336.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" = ?) [315242] 08:35:53.298 [debug] QUERY OK source="tasks" db=0.1ms idle=1287.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" [315242] 08:35:53.299 [debug] QUERY OK source="sources" db=0.1ms idle=336.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" = ?) [22] 08:35:53.299 [debug] QUERY OK source="settings" db=0.0ms idle=337.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:53.299 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:35:53.299 [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 [] 08:35:53.300 [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] 08:35:53.301 [info] Sent 200 in 3ms 08:35:58.520 [info] GET /sources/26/media/327250 08:35:58.520 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "327250", "source_id" => "26"} Pipelines: [:browser] 08:35:58.521 [debug] QUERY OK source="media_items" db=0.1ms idle=1558.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" = ?) [327250] 08:35:58.521 [debug] QUERY OK source="tasks" db=0.1ms idle=1559.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" [327250] 08:35:58.521 [debug] QUERY OK source="sources" db=0.2ms idle=1559.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" = ?) [26] 08:35:58.521 [debug] QUERY OK source="settings" db=0.0ms idle=1502.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:58.522 [debug] QUERY OK source="settings" db=0.0ms idle=501.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 [] 08:35:58.522 [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 [] 08:35:58.522 [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] 08:35:58.523 [info] Sent 200 in 3ms 08:36:00.811 [info] {"source":"oban","duration":167,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:36:03.250 [info] GET /sources/45/force_download_pending 08:36:03.251 [debug] QUERY OK source="settings" db=0.1ms idle=1288.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:03.251 [debug] QUERY OK source="settings" db=0.0ms idle=1288.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:03.251 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:36:03.251 [error] #PID<0.189334.0> running PinchflatWeb.Endpoint (connection #PID<0.189327.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/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/45/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49032}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189334.0>, params: %{}, path_info: ["sources", "45", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsl6Z7cI1KRKPIAR4cC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49032}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49032}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189334.0>, params: %{}, path_info: ["sources", "45", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 08:36:06.006 [info] {"source":"oban","duration":2368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:08.520 [info] GET /sources/17/force_download_pending 08:36:08.521 [debug] QUERY OK source="settings" db=0.1ms idle=1488.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 [] 08:36:08.521 [debug] QUERY OK source="settings" db=0.0ms idle=559.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 [] 08:36:08.521 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:36:08.521 [error] #PID<0.189336.0> running PinchflatWeb.Endpoint (connection #PID<0.189335.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/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/17/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 43446}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189336.0>, params: %{}, path_info: ["sources", "17", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsl6tj-hMoQKDMAUWkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 43446}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 43446}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUGtuYWlKZVF6UFlGYmh6TThWbDRnYU9V.ah2kHNxs5cOXwO6899R13FgyitFLIHPS8LIEmlJxKqE" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189336.0>, params: %{}, path_info: ["sources", "17", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 08:36:13.540 [info] GET /sources/17/media/12956 08:36:13.540 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12956", "source_id" => "17"} Pipelines: [:browser] 08:36:13.541 [debug] QUERY OK source="media_items" db=0.1ms idle=1578.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" = ?) [12956] 08:36:13.541 [debug] QUERY OK source="tasks" db=0.1ms idle=1579.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" [12956] 08:36:13.541 [debug] QUERY OK source="sources" db=0.1ms idle=1579.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" = ?) [17] 08:36:13.541 [debug] QUERY OK source="settings" db=0.0ms idle=1498.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 [] 08:36:13.541 [debug] QUERY OK source="settings" db=0.0ms idle=496.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 [] 08:36:13.542 [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 [] 08:36:13.542 [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] 08:36:13.543 [info] Sent 200 in 2ms 08:36:23.531 [info] GET /sources/22/media/352748 08:36:23.532 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "352748", "source_id" => "22"} Pipelines: [:browser] 08:36:23.532 [debug] QUERY OK source="media_items" db=0.1ms idle=569.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" = ?) [352748] 08:36:23.532 [debug] QUERY OK source="tasks" db=0.0ms idle=570.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" [352748] 08:36:23.532 [debug] QUERY OK source="sources" db=0.1ms idle=570.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" = ?) [22] 08:36:23.533 [debug] QUERY OK source="settings" db=0.0ms idle=570.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:23.533 [debug] QUERY OK source="settings" db=0.0ms idle=470.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:23.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 [] 08:36:23.534 [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] 08:36:23.535 [info] Sent 200 in 3ms 08:36:27.808 [info] GET /sources/38/media/2302048 08:36:27.808 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2302048", "source_id" => "38"} Pipelines: [:browser] 08:36:27.809 [debug] QUERY OK source="media_items" db=0.1ms idle=846.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" = ?) [2302048] 08:36:27.809 [debug] QUERY OK source="tasks" db=0.1ms idle=847.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" [2302048] 08:36:27.809 [debug] QUERY OK source="sources" db=0.1ms idle=847.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" = ?) [38] 08:36:27.810 [debug] QUERY OK source="settings" db=0.0ms idle=847.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 [] 08:36:27.810 [debug] QUERY OK source="settings" db=0.0ms idle=741.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:27.810 [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 [] 08:36:27.810 [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] 08:36:27.811 [info] Sent 200 in 2ms 08:36:32.828 [info] GET /sources/22/media/307944 08:36:32.828 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "307944", "source_id" => "22"} Pipelines: [:browser] 08:36:32.829 [debug] QUERY OK source="media_items" db=0.1ms idle=1867.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" = ?) [307944] 08:36:32.829 [debug] QUERY OK source="tasks" db=0.0ms idle=1867.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" [307944] 08:36:32.829 [debug] QUERY OK source="sources" db=0.1ms idle=1867.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" = ?) [22] 08:36:32.830 [debug] QUERY OK source="settings" db=0.0ms idle=1755.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 [] 08:36:32.830 [debug] QUERY OK source="settings" db=0.0ms idle=753.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 [] 08:36:32.830 [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 [] 08:36:32.830 [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] 08:36:32.831 [info] Sent 200 in 2ms 08:36:36.010 [info] {"source":"oban","duration":3646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:37.813 [info] GET /sources/46/media/2323363 08:36:37.813 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2323363", "source_id" => "46"} Pipelines: [:browser] 08:36:37.814 [debug] QUERY OK source="media_items" db=0.1ms idle=1851.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" = ?) [2323363] 08:36:37.814 [debug] QUERY OK source="tasks" db=0.1ms idle=1852.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" [2323363] 08:36:37.814 [debug] QUERY OK source="sources" db=0.2ms idle=1803.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" = ?) [46] 08:36:37.815 [debug] QUERY OK source="settings" db=0.0ms idle=1732.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:37.815 [debug] QUERY OK source="settings" db=0.0ms idle=731.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:37.815 [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 [] 08:36:37.815 [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] 08:36:37.816 [info] Sent 200 in 3ms 08:36:42.842 [info] GET /sources/45/media/2268722 08:36:42.843 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2268722", "source_id" => "45"} Pipelines: [:browser] 08:36:42.843 [debug] QUERY OK source="media_items" db=0.1ms idle=1881.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" = ?) [2268722] 08:36:42.843 [debug] QUERY OK source="tasks" db=0.0ms idle=1881.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" [2268722] 08:36:42.843 [debug] QUERY OK source="sources" db=0.1ms idle=1881.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" = ?) [45] 08:36:42.844 [debug] QUERY OK source="settings" db=0.0ms idle=1756.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:42.844 [debug] QUERY OK source="settings" db=0.0ms idle=755.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 [] 08:36:42.844 [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 [] 08:36:42.844 [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] 08:36:42.845 [info] Sent 200 in 2ms 08:36:47.815 [info] GET /sources/38/media/2074959 08:36:47.815 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2074959", "source_id" => "38"} Pipelines: [:browser] 08:36:47.815 [debug] QUERY OK source="media_items" db=0.1ms idle=1853.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" = ?) [2074959] 08:36:47.816 [debug] QUERY OK source="tasks" db=0.0ms idle=1854.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" [2074959] 08:36:47.816 [debug] QUERY OK source="sources" db=0.1ms idle=1854.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" = ?) [38] 08:36:47.816 [debug] QUERY OK source="settings" db=0.0ms idle=1720.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:47.816 [debug] QUERY OK source="settings" db=0.0ms idle=718.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:47.816 [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 [] 08:36:47.817 [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] 08:36:47.818 [info] Sent 200 in 2ms 08:36:52.816 [info] GET /sources/38/media/2020529 08:36:52.816 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2020529", "source_id" => "38"} Pipelines: [:browser] 08:36:52.816 [debug] QUERY OK source="media_items" db=0.2ms idle=1854.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" = ?) [2020529] 08:36:52.817 [debug] QUERY OK source="tasks" db=0.1ms idle=1854.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" [2020529] 08:36:52.817 [debug] QUERY OK source="sources" db=0.1ms idle=1854.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" = ?) [38] 08:36:52.817 [debug] QUERY OK source="settings" db=0.0ms idle=1714.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:52.817 [debug] QUERY OK source="settings" db=0.0ms idle=713.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:52.818 [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 [] 08:36:52.818 [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] 08:36:52.819 [info] Sent 200 in 3ms 08:36:57.817 [info] GET /sources/22/media/307942 08:36:57.818 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "307942", "source_id" => "22"} Pipelines: [:browser] 08:36:57.818 [debug] QUERY OK source="media_items" db=0.1ms idle=1856.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" = ?) [307942] 08:36:57.818 [debug] QUERY OK source="tasks" db=0.1ms idle=1856.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" [307942] 08:36:57.818 [debug] QUERY OK source="sources" db=0.2ms idle=1856.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" = ?) [22] 08:36:57.819 [debug] QUERY OK source="settings" db=0.0ms idle=1708.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:57.819 [debug] QUERY OK source="settings" db=0.0ms idle=706.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:57.819 [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 [] 08:36:57.819 [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] 08:36:57.820 [info] Sent 200 in 2ms 08:37:00.813 [info] {"source":"oban","duration":238,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:37:02.869 [info] GET /sources/9/media/6864/edit 08:37:02.869 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "6864", "source_id" => "9"} Pipelines: [:browser] 08:37:02.869 [debug] QUERY OK source="media_items" db=0.1ms idle=1907.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" = ?) [6864] 08:37:02.870 [debug] QUERY OK source="settings" db=0.0ms idle=1907.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:02.870 [debug] QUERY OK source="settings" db=0.0ms idle=1752.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 [] 08:37:02.870 [debug] QUERY OK source="settings" db=0.1ms idle=908.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:02.871 [info] Sent 200 in 1ms 08:37:06.014 [info] {"source":"oban","duration":3406,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:07.854 [info] GET /sources/22/media/333782 08:37:07.854 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "333782", "source_id" => "22"} Pipelines: [:browser] 08:37:07.855 [debug] QUERY OK source="media_items" db=0.1ms idle=1892.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" = ?) [333782] 08:37:07.855 [debug] QUERY OK source="tasks" db=0.1ms idle=1893.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" [333782] 08:37:07.855 [debug] QUERY OK source="sources" db=0.1ms idle=1840.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" = ?) [22] 08:37:07.856 [debug] QUERY OK source="settings" db=0.1ms idle=1731.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 [] 08:37:07.856 [debug] QUERY OK source="settings" db=0.0ms idle=729.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:07.856 [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 [] 08:37:07.857 [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] 08:37:07.858 [info] Sent 200 in 3ms 08:37:12.823 [info] GET /sources/22/media/307943 08:37:12.823 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "307943", "source_id" => "22"} Pipelines: [:browser] 08:37:12.823 [debug] QUERY OK source="media_items" db=0.1ms idle=1861.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" = ?) [307943] 08:37:12.824 [debug] QUERY OK source="tasks" db=0.1ms idle=1861.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" [307943] 08:37:12.824 [debug] QUERY OK source="sources" db=0.2ms idle=1861.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" = ?) [22] 08:37:12.824 [debug] QUERY OK source="settings" db=0.0ms idle=1691.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:12.824 [debug] QUERY OK source="settings" db=0.0ms idle=689.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 [] 08:37:12.825 [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 [] 08:37:12.825 [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] 08:37:12.826 [info] Sent 200 in 3ms 08:37:15.146 [info] {"args":{"id":1337268},"id":299058,"meta":{},"system_time":1777556235146114319,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:37:15.146 [debug] QUERY OK source="media_items" db=0.3ms idle=1184.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" = ?) [1337268] 08:37:15.146 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:37:15.147 [debug] QUERY OK source="sources" db=0.3ms idle=1184.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" = ?) [43] 08:37:15.147 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1009.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] 08:37:15.148 [debug] QUERY OK source="media_items" db=0.3ms idle=8.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 [1337268] 08:37:15.149 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1337268] 08:37:15.149 [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] 08:37:15.150 [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 [] 08:37:15.150 [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 [] 08:37:15.150 [debug] Running yt-dlp command for action: get_downloadable_status 08:37:15.151 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:37:15.151 [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 [] 08:37:15.151 [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 [] 08:37:15.152 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=54s8at5-KZU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c0/7e/c07e3ab2ad6062933293ef5e866ffabcca6359b4790c3b10ba68db244ed4d8f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:37:16.849 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=54s8at5-KZU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c0/7e/c07e3ab2ad6062933293ef5e866ffabcca6359b4790c3b10ba68db244ed4d8f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 54s8at5-KZU: Join this channel to get access to members-only content like this video, and other exclusive perks. 08:37:16.849 [error] yt-dlp download error for media item #1337268: "ERROR: [youtube] 54s8at5-KZU: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 08:37:16.849 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1337268},"id":299058,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1703394,"event":"job:exception","queue_time":450799,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:37:18.123 [info] GET /media/c2571915-095a-4bbd-81ec-f3f8bed9daf4/stream 08:37:18.123 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c2571915-095a-4bbd-81ec-f3f8bed9daf4"} Pipelines: [:maybe_basic_auth] 08:37:18.124 [debug] QUERY OK source="media_items" db=0.5ms idle=1162.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" = ?) ["c2571915-095a-4bbd-81ec-f3f8bed9daf4"] 08:37:18.124 [debug] Invalid range request for media item: c2571915-095a-4bbd-81ec-f3f8bed9daf4 - serving full file 08:37:18.124 [info] Sent 200 in 969µs 08:37:32.604 [info] GET /sources/38 08:37:32.604 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "38"} Pipelines: [:browser] 08:37:32.605 [debug] QUERY OK source="sources" db=0.1ms idle=1330.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" = ?) [38] 08:37:32.605 [debug] QUERY OK source="media_profiles" db=0.1ms idle=630.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] 08:37:32.616 [debug] QUERY OK source="tasks" db=10.6ms idle=630.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 (?,?,?,?)) [38, "executing", "available", "scheduled", "retryable"] 08:37:32.616 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=641.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" = ?) [300423] 08:37:32.617 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:37:32.617 [debug] QUERY OK source="settings" db=0.0ms idle=11.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:32.617 [debug] QUERY OK source="settings" db=0.1ms idle=11.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:32.618 [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" = ?) [38] 08:37:32.619 [debug] QUERY OK source="media_items" db=1.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 ((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")))) [38] 08:37:32.621 [debug] QUERY OK source="media_items" db=1.0ms idle=2.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 ? [38, 10, 0] 08:37:32.621 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [38] 08:37:32.621 [debug] QUERY OK source="media_items" db=0.1ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 08:37:32.622 [debug] QUERY OK source="media_items" db=0.7ms idle=2.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 ? [38, 10, 0] 08:37:32.622 [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" = ?) [38] 08:37:32.623 [debug] QUERY OK source="media_items" db=0.3ms 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 ((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"))))) [38] 08:37:32.624 [debug] QUERY OK source="media_items" db=1.0ms 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 ? [38, 10, 0] 08:37:32.625 [info] Sent 200 in 20ms 08:37:36.019 [info] {"source":"oban","duration":3777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:37.230 [info] GET /sources/45/sync_files_on_disk 08:37:37.231 [debug] QUERY OK source="settings" db=0.1ms idle=1255.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:37.231 [debug] QUERY OK source="settings" db=0.0ms idle=1256.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 [] 08:37:37.231 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:37:37.231 [error] #PID<0.189402.0> running PinchflatWeb.Endpoint (connection #PID<0.189400.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/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/45/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189402.0>, params: %{}, path_info: ["sources", "45", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsl_4CDFX-r5loAR44C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189402.0>, params: %{}, path_info: ["sources", "45", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], (truncated) 08:37:42.209 [info] GET /sources/27/force_index 08:37:42.210 [debug] QUERY OK source="settings" db=0.1ms idle=1234.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:42.210 [debug] QUERY OK source="settings" db=0.0ms idle=1235.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 [] 08:37:42.210 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:37:42.210 [error] #PID<0.189403.0> running PinchflatWeb.Endpoint (connection #PID<0.189400.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/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/27/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189403.0>, params: %{}, path_info: ["sources", "27", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmAKlJvHtMAZMAR45C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189400.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 45222}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189403.0>, params: %{}, path_info: ["sources", "27", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Sessi (truncated) 08:37:47.240 [info] GET /sources/46/sync_files_on_disk 08:37:47.240 [debug] QUERY OK source="settings" db=0.1ms idle=1265.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 [] 08:37:47.240 [debug] QUERY OK source="settings" db=0.0ms idle=1265.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:47.240 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:37:47.241 [error] #PID<0.189406.0> running PinchflatWeb.Endpoint (connection #PID<0.189405.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/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/46/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189405.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49716}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189406.0>, params: %{}, path_info: ["sources", "46", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmAdUe-G2vq-MAR46C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189405.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49716}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189405.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49716}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYT0paMU9leXBuLXZLaHdpa2x3alBHTzNa.IPC81B0ZMtu7fJMp7d7Rxcxfztlnamqt0iLjLgaLop0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189406.0>, params: %{}, path_info: ["sources", "46", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], (truncated) 08:37:57.321 [info] {"args":{"id":52},"id":300595,"meta":{},"system_time":1777556277321589872,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:37:57.322 [debug] QUERY OK source="sources" db=0.2ms idle=1009.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" = ?) [52] 08:37:57.322 [debug] QUERY OK source="settings" db=0.5ms idle=341.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:57.323 [debug] QUERY OK source="media_profiles" db=0.2ms idle=341.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] 08:37:57.323 [debug] QUERY OK source="settings" db=0.1ms idle=8.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 [] 08:37:57.323 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 08:37:58.411 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:37:58.411 [debug] QUERY OK source="media_items" db=0.3ms idle=1089.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:37:58.412 [debug] QUERY OK source="settings" db=0.0ms idle=1089.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 [] 08:37:58.412 [debug] QUERY OK source="settings" db=0.0ms idle=1089.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 [] 08:37:58.412 [debug] Running yt-dlp command for action: get_media_attributes 08:37:58.414 [debug] QUERY OK source="settings" db=0.0ms idle=1090.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:37:58.414 [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 [] 08:37:58.414 [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 [] 08:37:58.414 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/01/de/01dee0b1f8d8a32806ec0dd232101881492a2420e35cb409960246038a5b71b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:00.814 [info] {"source":"oban","duration":157,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:38:01.015 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/01/de/01dee0b1f8d8a32806ec0dd232101881492a2420e35cb409960246038a5b71b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 08:38:01.015 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 08:38:01.016 [debug] QUERY OK source="media_items" db=0.5ms idle=1034.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 ((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")))) [52] 08:38:01.019 [debug] QUERY OK source="tasks" db=0.2ms idle=700.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300597, 1301334, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.022 [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" [300598, 1301335, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.025 [debug] QUERY OK source="tasks" db=0.6ms 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" [300599, 1301347, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.027 [info] {"args":{"id":1301334},"id":300597,"meta":{},"system_time":1777556281027104980,"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"]} 08:38:01.027 [info] {"args":{"id":1301335},"id":300598,"meta":{},"system_time":1777556281027142313,"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"]} 08:38:01.027 [debug] QUERY OK source="media_items" db=0.3ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 08:38:01.027 [debug] QUERY OK source="media_items" db=0.6ms 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 WHERE (m0."id" = ?) [1301334] 08:38:01.027 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:01.028 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:01.028 [debug] QUERY OK source="sources" db=0.5ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 08:38:01.028 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [52] 08:38:01.028 [debug] QUERY OK source="tasks" db=0.3ms idle=0.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300600, 1301392, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.029 [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] 08:38:01.029 [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] 08:38:01.029 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301335] 08:38:01.030 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301334] 08:38:01.031 [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" = ?) [1301335] 08:38:01.031 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 08:38:01.031 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301334] 08:38:01.031 [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 [] 08:38:01.032 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:38:01.032 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:38:01.032 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:01.032 [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 [] 08:38:01.032 [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 [] 08:38:01.033 [debug] QUERY OK source="tasks" db=0.1ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300601, 1301393, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.033 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:01.033 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:38:01.033 [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 [] 08:38:01.034 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:38:01.034 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:38:01.034 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/35/9a/359ac6821f02465fc137f3b891ced63faee4ed33bc11bcb4618d684324fc81df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:01.034 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 08:38:01.034 [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 [] 08:38:01.035 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d6/92/d69292fa601b8b8f8affdc6dde6ae432ee4078cc10dbe718b841b978bdc930ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:01.036 [debug] QUERY OK source="tasks" db=0.2ms idle=1.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300602, 1301394, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.038 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300603, 1301395, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.040 [debug] QUERY OK source="tasks" db=0.2ms idle=2.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300604, 1301397, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.042 [debug] QUERY OK source="tasks" db=0.3ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300605, 1301398, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.044 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300606, 1301399, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.046 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300607, 1301400, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.048 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300608, 2720968, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.050 [debug] QUERY OK source="tasks" db=0.2ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300609, 52, ~U[2026-04-30 13:38:01Z], ~U[2026-04-30 13:38:01Z]] 08:38:01.050 [info] {"args":{"id":52},"id":300595,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":3728690,"event":"job:stop","queue_time":509232,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:38:02.790 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/35/9a/359ac6821f02465fc137f3b891ced63faee4ed33bc11bcb4618d684324fc81df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:02.791 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:02.791 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:02.791 [info] {"args":{"id":1301335},"id":300598,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1764062,"event":"job:stop","queue_time":24985,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:02.797 [info] {"args":{"id":1301347},"id":300599,"meta":{},"system_time":1777556282797845317,"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"]} 08:38:02.798 [debug] QUERY OK source="media_items" db=0.1ms idle=1741.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" = ?) [1301347] 08:38:02.798 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:02.798 [debug] QUERY OK source="sources" db=0.2ms idle=1478.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" = ?) [52] 08:38:02.798 [debug] QUERY OK source="media_profiles" db=0.1ms idle=476.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] 08:38:02.799 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301347] 08:38:02.800 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301347] 08:38:02.800 [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] 08:38:02.800 [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 [] 08:38:02.800 [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 [] 08:38:02.801 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:02.801 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:02.801 [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 [] 08:38:02.802 [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 [] 08:38:02.802 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/76/0c7618856950a066d8e1a4d37236f39be38eb2c5a607c5350875ec46ee365306.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:02.907 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d6/92/d69292fa601b8b8f8affdc6dde6ae432ee4078cc10dbe718b841b978bdc930ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:02.907 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:02.907 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:02.907 [info] {"args":{"id":1301334},"id":300597,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1880348,"event":"job:stop","queue_time":24985,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:02.914 [info] {"args":{"id":1301392},"id":300600,"meta":{},"system_time":1777556282914500624,"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"]} 08:38:02.914 [debug] QUERY OK source="media_items" db=0.2ms idle=112.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" = ?) [1301392] 08:38:02.915 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:02.915 [debug] QUERY OK source="sources" db=0.1ms idle=113.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" = ?) [52] 08:38:02.915 [debug] QUERY OK source="media_profiles" db=0.1ms idle=113.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] 08:38:02.916 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301392] 08:38:02.916 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 08:38:02.917 [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] 08:38:02.917 [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 [] 08:38:02.917 [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 [] 08:38:02.917 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:02.918 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:02.919 [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 [] 08:38:02.919 [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 [] 08:38:02.919 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/12/d5122675981481e008f378332961aa41480318055ade6440776af550f9556755.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:03.932 [info] GET /sources/new 08:38:03.932 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "9"} Pipelines: [:browser] 08:38:03.933 [debug] QUERY OK source="sources" db=0.1ms idle=1015.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" = ?) [9] 08:38:03.933 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1014.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 ORDER BY m0."name" [] 08:38:03.933 [debug] QUERY OK source="settings" db=0.1ms idle=1014.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 [] 08:38:03.933 [debug] QUERY OK source="settings" db=0.0ms idle=1014.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 [] 08:38:03.933 [debug] QUERY OK source="settings" db=0.0ms idle=611.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:03.934 [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 [] 08:38:03.934 [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 [] 08:38:03.936 [info] Sent 200 in 3ms 08:38:05.056 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/76/0c7618856950a066d8e1a4d37236f39be38eb2c5a607c5350875ec46ee365306.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:05.056 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:05.056 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:05.057 [info] {"args":{"id":1301347},"id":300599,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2258956,"event":"job:stop","queue_time":1796902,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:05.064 [info] {"args":{"id":1301393},"id":300601,"meta":{},"system_time":1777556285063935382,"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"]} 08:38:05.064 [debug] QUERY OK source="media_items" db=0.2ms idle=83.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" = ?) [1301393] 08:38:05.064 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:05.064 [debug] QUERY OK source="sources" db=0.1ms idle=83.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" = ?) [52] 08:38:05.065 [debug] QUERY OK source="media_profiles" db=0.1ms idle=83.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] 08:38:05.065 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301393] 08:38:05.067 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301393] 08:38:05.067 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:38:05.068 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:05.068 [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 [] 08:38:05.068 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:05.069 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:05.069 [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 [] 08:38:05.069 [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 [] 08:38:05.069 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/4e/614e70f871d1333fdb2153c2feac3da9e1c21a042214e6f9fb77f75307992830.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:05.179 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/12/d5122675981481e008f378332961aa41480318055ade6440776af550f9556755.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:05.180 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:05.180 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:05.180 [info] {"args":{"id":1301392},"id":300600,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2265673,"event":"job:stop","queue_time":1913941,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:05.186 [info] {"args":{"id":1301394},"id":300602,"meta":{},"system_time":1777556285186485334,"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"]} 08:38:05.186 [debug] QUERY OK source="media_items" db=0.1ms idle=117.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" = ?) [1301394] 08:38:05.187 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:05.187 [debug] QUERY OK source="sources" db=0.1ms idle=117.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" = ?) [52] 08:38:05.187 [debug] QUERY OK source="media_profiles" db=0.1ms idle=118.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] 08:38:05.188 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301394] 08:38:05.189 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 08:38:05.189 [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] 08:38:05.189 [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 [] 08:38:05.189 [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 [] 08:38:05.189 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:05.190 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:05.190 [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 [] 08:38:05.191 [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 [] 08:38:05.191 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e2/b1/e2b1e3b8af4fd8cf80897190f83ee69ac7936653888dc794aead6aac8f6eb45c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:06.023 [info] {"source":"oban","duration":3230,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:06.932 [info] GET /sources/26/force_redownload 08:38:06.932 [debug] QUERY OK source="settings" db=0.1ms idle=1741.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:06.932 [debug] QUERY OK source="settings" db=0.1ms idle=1741.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:06.933 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:38:06.933 [error] #PID<0.189436.0> running PinchflatWeb.Endpoint (connection #PID<0.189428.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/26/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/26/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189428.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54598}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189436.0>, params: %{}, path_info: ["sources", "26", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/26/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmBmrbHtjC0xIAR5GC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189428.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54598}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/26/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189428.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 54598}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189436.0>, params: %{}, path_info: ["sources", "26", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_ (truncated) 08:38:07.449 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e2/b1/e2b1e3b8af4fd8cf80897190f83ee69ac7936653888dc794aead6aac8f6eb45c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:07.449 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:07.449 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:07.449 [info] {"args":{"id":1301394},"id":300602,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2263124,"event":"job:stop","queue_time":4185898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:07.450 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/4e/614e70f871d1333fdb2153c2feac3da9e1c21a042214e6f9fb77f75307992830.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:07.450 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:07.450 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:07.451 [info] {"args":{"id":1301393},"id":300601,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2387029,"event":"job:stop","queue_time":4062982,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:07.471 [info] {"args":{"id":1301395},"id":300603,"meta":{},"system_time":1777556287471353762,"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"]} 08:38:07.471 [info] {"args":{"id":1301397},"id":300604,"meta":{},"system_time":1777556287471412627,"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"]} 08:38:07.472 [debug] QUERY OK source="media_items" db=0.3ms idle=490.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" = ?) [1301395] 08:38:07.472 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:07.472 [debug] QUERY OK source="media_items" db=0.6ms idle=142.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" = ?) [1301397] 08:38:07.472 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:07.472 [debug] QUERY OK source="sources" db=0.4ms idle=22.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" = ?) [52] 08:38:07.472 [debug] QUERY OK source="sources" db=0.2ms idle=21.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" = ?) [52] 08:38:07.473 [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] 08:38:07.473 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:38:07.473 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301397] 08:38:07.473 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301395] 08:38:07.475 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 08:38:07.475 [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] 08:38:07.475 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:07.476 [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 [] 08:38:07.476 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301395] 08:38:07.476 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:07.476 [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] 08:38:07.476 [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 [] 08:38:07.476 [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 [] 08:38:07.477 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:07.477 [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 [] 08:38:07.477 [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 [] 08:38:07.477 [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 [] 08:38:07.477 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6c/3b/6c3b97559eb485c814c0b48e0e436bf067822377e5548c99182d17c974256d5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:07.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 [] 08:38:07.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 [] 08:38:07.478 [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 [] 08:38:07.478 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/a8/06a8aa427ab126c84e3979914f3e25bef49dccefa30a281e404b26b311ff245e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:09.286 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/a8/06a8aa427ab126c84e3979914f3e25bef49dccefa30a281e404b26b311ff245e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:09.286 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:09.286 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:09.291 [info] {"args":{"id":1301395},"id":300603,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1815151,"event":"job:stop","queue_time":6455942,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:09.298 [info] {"args":{"id":1301398},"id":300605,"meta":{},"system_time":1777556289297996830,"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"]} 08:38:09.298 [debug] QUERY OK source="media_items" db=0.1ms idle=316.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" = ?) [1301398] 08:38:09.298 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:09.298 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=317.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" = ?) [52] 08:38:09.299 [debug] QUERY OK source="media_profiles" db=0.1ms idle=317.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] 08:38:09.299 [debug] QUERY OK source="media_items" db=0.3ms idle=8.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 [1301398] 08:38:09.300 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301398] 08:38:09.300 [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] 08:38:09.301 [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 [] 08:38:09.301 [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 [] 08:38:09.301 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:09.303 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:09.303 [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 [] 08:38:09.303 [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 [] 08:38:09.303 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/55/ca5515b0db478ae010443c022a487b9b243895c851639b042249b1b66648efaf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:09.795 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6c/3b/6c3b97559eb485c814c0b48e0e436bf067822377e5548c99182d17c974256d5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:09.795 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:09.795 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:09.795 [info] {"args":{"id":1301397},"id":300604,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2324032,"event":"job:stop","queue_time":6455942,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:09.802 [info] {"args":{"id":1301399},"id":300606,"meta":{},"system_time":1777556289802509284,"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"]} 08:38:09.802 [debug] QUERY OK source="media_items" db=0.1ms idle=499.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" = ?) [1301399] 08:38:09.802 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:09.803 [debug] QUERY OK source="sources" db=0.1ms idle=499.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" = ?) [52] 08:38:09.803 [debug] QUERY OK source="media_profiles" db=0.1ms idle=470.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] 08:38:09.803 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301399] 08:38:09.805 [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" = ?) [1301399] 08:38:09.805 [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] 08:38:09.805 [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 [] 08:38:09.805 [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 [] 08:38:09.806 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:09.806 [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 [] 08:38:09.806 [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 [] 08:38:09.807 [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 [] 08:38:09.807 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/40/f04083c55682876df030862e628fc2eee4c59c68945d8bc3670367c2b25e0d9c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:11.153 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/55/ca5515b0db478ae010443c022a487b9b243895c851639b042249b1b66648efaf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:11.153 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:11.153 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:11.154 [info] {"args":{"id":1301398},"id":300605,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1855751,"event":"job:stop","queue_time":8296912,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:11.160 [info] {"args":{"id":1301400},"id":300607,"meta":{},"system_time":1777556291160556778,"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"]} 08:38:11.161 [debug] QUERY OK source="media_items" db=0.2ms idle=179.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" = ?) [1301400] 08:38:11.161 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:11.161 [debug] QUERY OK source="sources" db=0.2ms idle=179.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" = ?) [52] 08:38:11.161 [debug] QUERY OK source="media_profiles" db=0.1ms idle=180.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] 08:38:11.162 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301400] 08:38:11.164 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1301400] 08:38:11.164 [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] 08:38:11.165 [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 [] 08:38:11.165 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:11.165 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:11.167 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:11.167 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:11.167 [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 [] 08:38:11.167 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/7a/427ad7396ef613697250e1a10376e8ea568af424fe16663767e0ec4b8418a037.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:11.820 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/40/f04083c55682876df030862e628fc2eee4c59c68945d8bc3670367c2b25e0d9c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:11.820 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:11.821 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:11.821 [info] {"args":{"id":1301399},"id":300606,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2018665,"event":"job:stop","queue_time":8801938,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:11.827 [info] {"args":{"id":2720968},"id":300608,"meta":{},"system_time":1777556291827550537,"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"]} 08:38:11.827 [debug] QUERY OK source="media_items" db=0.1ms idle=660.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" = ?) [2720968] 08:38:11.828 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:38:11.828 [debug] QUERY OK source="sources" db=0.1ms idle=660.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" = ?) [52] 08:38:11.828 [debug] QUERY OK source="media_profiles" db=0.1ms idle=493.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] 08:38:11.828 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 08:38:11.830 [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" = ?) [2720968] 08:38:11.830 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:38:11.830 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:11.830 [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 [] 08:38:11.831 [debug] Running yt-dlp command for action: get_downloadable_status 08:38:11.832 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:11.832 [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 [] 08:38:11.832 [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 [] 08:38:11.832 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d1/2d/d12d61ed09a4994a6bf2419dcfedfb815af304eabc9a8c9872f2ac219f38fdd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:38:12.260 [info] GET /sources/38/force_redownload 08:38:12.261 [debug] QUERY OK source="settings" db=0.2ms idle=430.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:12.261 [debug] QUERY OK source="settings" db=0.0ms idle=430.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 [] 08:38:12.261 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:38:12.261 [error] #PID<0.189456.0> running PinchflatWeb.Endpoint (connection #PID<0.189455.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/38/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/38/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189456.0>, params: %{}, path_info: ["sources", "38", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/38/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmB6h0uJgXlukAR5HC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/38/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189456.0>, params: %{}, path_info: ["sources", "38", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_ (truncated) 08:38:13.951 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d1/2d/d12d61ed09a4994a6bf2419dcfedfb815af304eabc9a8c9872f2ac219f38fdd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:13.951 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:13.951 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:13.952 [info] {"args":{"id":2720968},"id":300608,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2124254,"event":"job:stop","queue_time":10826892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:14.186 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/7a/427ad7396ef613697250e1a10376e8ea568af424fe16663767e0ec4b8418a037.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:38:14.186 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:14.186 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:38:14.187 [info] {"args":{"id":1301400},"id":300607,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3026235,"event":"job:stop","queue_time":10159896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:38:16.968 [info] GET /sources/52/force_redownload 08:38:16.968 [debug] QUERY OK source="settings" db=0.1ms idle=1987.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 [] 08:38:16.968 [debug] QUERY OK source="settings" db=0.0ms idle=1627.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:16.968 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:38:16.969 [error] #PID<0.189457.0> running PinchflatWeb.Endpoint (connection #PID<0.189455.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/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/52/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189457.0>, params: %{}, path_info: ["sources", "52", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmCMELgX1l5HoAR5IC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189457.0>, params: %{}, path_info: ["sources", "52", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_ (truncated) 08:38:21.940 [info] GET /sources/43/force_redownload 08:38:21.941 [debug] QUERY OK source="settings" db=0.1ms idle=1960.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:21.941 [debug] QUERY OK source="settings" db=0.0ms idle=1960.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 [] 08:38:21.941 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:38:21.941 [error] #PID<0.189458.0> running PinchflatWeb.Endpoint (connection #PID<0.189455.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/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/43/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189458.0>, params: %{}, path_info: ["sources", "43", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmCelyUWpKqk8AR5JC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189458.0>, params: %{}, path_info: ["sources", "43", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_ (truncated) 08:38:26.941 [info] GET /sources/30/force_redownload 08:38:26.942 [debug] QUERY OK source="settings" db=0.1ms idle=1961.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:26.942 [debug] QUERY OK source="settings" db=0.1ms idle=1587.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:26.942 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:38:26.942 [error] #PID<0.189459.0> running PinchflatWeb.Endpoint (connection #PID<0.189455.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/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/30/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189459.0>, params: %{}, path_info: ["sources", "30", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmCxOFXVdrWOAAR5KC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56168}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYcG5mNW1jal9vcHpXckoteDVoU2lRNGJv.EZQPtfaYGXtuLOkAh_U_YYSY_eheqiwpXo8QJQS9-Qg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189459.0>, params: %{}, path_info: ["sources", "30", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_ (truncated) 08:38:31.946 [info] GET /sources/57 08:38:31.946 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "57"} Pipelines: [:browser] 08:38:31.946 [debug] QUERY OK source="sources" db=0.2ms idle=1965.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" = ?) [57] 08:38:31.947 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1965.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] 08:38:31.947 [debug] QUERY OK source="tasks" db=0.2ms idle=1966.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 (?,?,?,?)) [57, "executing", "available", "scheduled", "retryable"] 08:38:31.947 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1587.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" = ?) [299545] 08:38:31.948 [debug] QUERY OK source="settings" db=0.0ms idle=586.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 [] 08:38:31.948 [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 [] 08:38:31.948 [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 [] 08:38:31.949 [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" = ?) [57] 08:38:31.949 [debug] QUERY OK source="media_items" db=0.4ms 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")))) [57] 08:38:31.950 [debug] QUERY OK source="media_items" db=0.5ms 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 (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [57, 10, 0] 08:38:31.951 [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" = ?) [57] 08:38:31.951 [debug] QUERY OK source="media_items" db=0.0ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [57] 08:38:31.951 [debug] QUERY OK source="media_items" db=0.3ms 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 ? [57, 10, 0] 08:38:31.952 [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" = ?) [57] 08:38:31.952 [debug] QUERY OK source="media_items" db=0.2ms 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 ((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"))))) [57] 08:38:31.953 [debug] QUERY OK source="media_items" db=0.4ms idle=1.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 ? [57, 10, 0] 08:38:31.954 [info] Sent 200 in 8ms 08:38:36.027 [info] {"source":"oban","duration":3478,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:36.947 [info] GET /sources/22 08:38:36.947 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "22"} Pipelines: [:browser] 08:38:36.947 [debug] QUERY OK source="sources" db=0.1ms idle=1966.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" = ?) [22] 08:38:36.948 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1966.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] 08:38:36.950 [debug] QUERY OK source="tasks" db=2.0ms idle=1581.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 (?,?,?,?)) [22, "executing", "available", "scheduled", "retryable"] 08:38:36.950 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=923.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" = ?) [299521] 08:38:36.950 [debug] QUERY OK source="settings" db=0.0ms idle=583.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 [] 08:38:36.951 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:36.951 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:38:36.952 [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" = ?) [22] 08:38:36.952 [debug] QUERY OK source="media_items" db=0.1ms 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 ((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")))) [22] 08:38:36.953 [debug] QUERY OK source="media_items" db=0.2ms 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 (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [22, 10, 0] 08:38:36.953 [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" = ?) [22] 08:38:36.953 [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)) [22] 08:38:36.953 [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 ? [22, 10, 0] 08:38:36.954 [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" = ?) [22] 08:38:36.954 [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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 08:38:36.954 [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 ? [22, 10, 0] 08:38:36.955 [info] Sent 200 in 8ms 08:38:42.579 [info] GET /sources/new 08:38:42.579 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "46"} Pipelines: [:browser] 08:38:42.579 [debug] QUERY OK source="sources" db=0.1ms idle=598.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" = ?) [46] 08:38:42.579 [debug] QUERY OK source="media_profiles" db=0.1ms idle=598.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" [] 08:38:42.580 [debug] QUERY OK source="settings" db=0.0ms idle=599.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:42.580 [debug] QUERY OK source="settings" db=0.0ms idle=599.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 [] 08:38:42.580 [debug] QUERY OK source="settings" db=0.0ms idle=207.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:42.580 [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 [] 08:38:42.581 [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 [] 08:38:42.582 [info] Sent 200 in 3ms 08:38:47.464 [info] GET /sources/new 08:38:47.464 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "26"} Pipelines: [:browser] 08:38:47.465 [debug] QUERY OK source="sources" db=0.1ms idle=1484.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" = ?) [26] 08:38:47.465 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1484.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" [] 08:38:47.465 [debug] QUERY OK source="settings" db=0.1ms idle=1484.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:47.466 [debug] QUERY OK source="settings" db=0.0ms idle=1088.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 [] 08:38:47.466 [debug] QUERY OK source="settings" db=0.0ms idle=87.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:47.466 [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 [] 08:38:47.466 [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 [] 08:38:47.468 [info] Sent 200 in 3ms 08:38:52.465 [info] GET /sources/17/media/12957 08:38:52.465 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12957", "source_id" => "17"} Pipelines: [:browser] 08:38:52.466 [debug] QUERY OK source="media_items" db=0.1ms idle=1484.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" = ?) [12957] 08:38:52.466 [debug] QUERY OK source="tasks" db=0.1ms idle=1485.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" [12957] 08:38:52.466 [debug] QUERY OK source="sources" db=0.2ms idle=1485.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" = ?) [17] 08:38:52.466 [debug] QUERY OK source="settings" db=0.0ms idle=1083.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:52.467 [debug] QUERY OK source="settings" db=0.0ms idle=82.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 [] 08:38:52.467 [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 [] 08:38:52.467 [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] 08:38:52.468 [info] Sent 200 in 2ms 08:38:56.808 [info] GET /sources/55/media/2331681 08:38:56.809 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2331681", "source_id" => "55"} Pipelines: [:browser] 08:38:56.809 [debug] QUERY OK source="media_items" db=0.2ms idle=828.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" = ?) [2331681] 08:38:56.809 [debug] QUERY OK source="tasks" db=0.1ms idle=828.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" [2331681] 08:38:56.809 [debug] QUERY OK source="sources" db=0.1ms idle=828.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" = ?) [55] 08:38:56.810 [debug] QUERY OK source="settings" db=0.1ms idle=829.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:56.810 [debug] QUERY OK source="settings" db=0.0ms idle=420.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:38:56.810 [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 [] 08:38:56.811 [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] 08:38:56.811 [info] Sent 200 in 3ms 08:39:00.815 [info] {"source":"oban","duration":207,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:39:01.714 [info] GET /sources/45/media/1854320 08:39:01.715 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1854320", "source_id" => "45"} Pipelines: [:browser] 08:39:01.715 [debug] QUERY OK source="media_items" db=0.1ms idle=1734.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" = ?) [1854320] 08:39:01.715 [debug] QUERY OK source="tasks" db=0.1ms idle=1734.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" [1854320] 08:39:01.715 [debug] QUERY OK source="sources" db=0.1ms idle=1319.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" = ?) [45] 08:39:01.716 [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 [] 08:39:01.716 [debug] QUERY OK source="settings" db=0.0ms idle=318.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 [] 08:39:01.716 [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 [] 08:39:01.717 [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] 08:39:01.718 [info] Sent 200 in 3ms 08:39:06.032 [info] {"source":"oban","duration":4325,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:07.278 [info] GET /sources/52/media/1301392 08:39:07.278 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1301392", "source_id" => "52"} Pipelines: [:browser] 08:39:07.278 [debug] QUERY OK source="media_items" db=0.1ms idle=1246.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" = ?) [1301392] 08:39:07.279 [debug] QUERY OK source="sources" db=0.2ms idle=297.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" = ?) [52] 08:39:07.283 [debug] QUERY OK source="tasks" db=4.0ms idle=874.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" [1301392] 08:39:07.391 [debug] QUERY OK source="oban_jobs" db=103.0ms idle=306.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [277930, 277991, 278025, 278039, 278053, 278066, 278079, 278215, 278237, 278250, 278278, 278299, 278313, 278326, 278339, 278353, 278366, 278384, 278399, 278412, 278425, 278439, 278452, 278468, 278484, 278497, 278510, 278524, 278537, 278557, 278572, 278586, 278599, 278612, 278626, 278642, 278657, 278671, 278684, 278697, 278711, 278727, 278743, 278757, 278770, 278783, 278797, 278816, 278831, 278845, ...] 08:39:07.409 [debug] QUERY OK source="settings" db=0.0ms idle=130.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 [] 08:39:07.409 [debug] QUERY OK source="settings" db=0.0ms idle=130.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:07.410 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:39:07.410 [debug] QUERY OK source="media_profiles" db=0.0ms idle=19.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] 08:39:07.492 [info] Sent 200 in 214ms 08:39:12.177 [info] GET /sources/38/media/2018263/edit 08:39:12.177 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2018263", "source_id" => "38"} Pipelines: [:browser] 08:39:12.178 [debug] QUERY OK source="media_items" db=0.1ms idle=1197.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" = ?) [2018263] 08:39:12.178 [debug] QUERY OK source="settings" db=0.0ms idle=1197.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:12.178 [debug] QUERY OK source="settings" db=0.0ms idle=1197.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:12.179 [debug] QUERY OK source="settings" db=0.0ms idle=1197.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:12.179 [info] Sent 200 in 1ms 08:39:17.179 [info] GET /sources/45/media/1949827 08:39:17.179 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1949827", "source_id" => "45"} Pipelines: [:browser] 08:39:17.179 [debug] QUERY OK source="media_items" db=0.1ms idle=1198.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" = ?) [1949827] 08:39:17.179 [debug] QUERY OK source="tasks" db=0.1ms idle=1198.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" [1949827] 08:39:17.180 [debug] QUERY OK source="sources" db=0.1ms idle=1198.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" = ?) [45] 08:39:17.180 [debug] QUERY OK source="settings" db=0.1ms idle=1199.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:17.180 [debug] QUERY OK source="settings" db=0.0ms idle=757.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:17.180 [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 [] 08:39:17.181 [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] 08:39:17.182 [info] Sent 200 in 2ms 08:39:21.557 [info] GET /sources/26/media/327263 08:39:21.557 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "327263", "source_id" => "26"} Pipelines: [:browser] 08:39:21.557 [debug] QUERY OK source="media_items" db=0.1ms 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 WHERE (m0."id" = ?) [327263] 08:39:21.558 [debug] QUERY OK source="tasks" db=0.0ms idle=577.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" [327263] 08:39:21.558 [debug] QUERY OK source="sources" db=0.1ms idle=577.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" = ?) [26] 08:39:21.558 [debug] QUERY OK source="settings" db=0.0ms idle=577.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 [] 08:39:21.558 [debug] QUERY OK source="settings" db=0.0ms idle=128.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:21.558 [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 [] 08:39:21.559 [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] 08:39:21.560 [info] Sent 200 in 2ms 08:39:26.480 [info] GET /sources/new 08:39:26.481 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "38"} Pipelines: [:browser] 08:39:26.481 [debug] QUERY OK source="sources" db=0.1ms idle=1500.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" = ?) [38] 08:39:26.481 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1500.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" [] 08:39:26.481 [debug] QUERY OK source="settings" db=0.0ms idle=1500.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:26.482 [debug] QUERY OK source="settings" db=0.0ms idle=1047.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 [] 08:39:26.482 [debug] QUERY OK source="settings" db=0.0ms idle=46.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:26.482 [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 [] 08:39:26.482 [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 [] 08:39:26.484 [info] Sent 200 in 3ms 08:39:31.481 [info] GET /sources/17/media/12952 08:39:31.481 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12952", "source_id" => "17"} Pipelines: [:browser] 08:39:31.482 [debug] QUERY OK source="media_items" db=0.1ms idle=1500.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" = ?) [12952] 08:39:31.482 [debug] QUERY OK source="tasks" db=0.1ms idle=1501.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" [12952] 08:39:31.482 [debug] QUERY OK source="sources" db=0.2ms idle=1501.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" = ?) [17] 08:39:31.483 [debug] QUERY OK source="settings" db=0.0ms idle=1040.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:31.483 [debug] QUERY OK source="settings" db=0.0ms idle=37.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:31.483 [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 [] 08:39:31.483 [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] 08:39:31.484 [info] Sent 200 in 2ms 08:39:36.036 [info] {"source":"oban","duration":3713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:36.483 [info] GET /sources/9/force_download_pending 08:39:36.483 [debug] QUERY OK source="settings" db=0.1ms idle=1502.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:36.484 [debug] QUERY OK source="settings" db=0.0ms idle=1502.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:36.484 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:39:36.484 [error] #PID<0.189505.0> running PinchflatWeb.Endpoint (connection #PID<0.189484.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/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/9/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37070}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189505.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmG0SGzeZadwoAUXKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37070}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37070}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQzlXLVBUbDVrUUE1Z1d4TU5uSmN5NlJj.89ofjuIkqVL2fA-b0Jfn0mTB7FYpC6L-Itc7GPCPbQA" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189505.0>, params: %{}, path_info: ["sources", "9", "force_download_pending"], path_params: %{}, port: 80, private: %{ Pinchfla (truncated) 08:39:41.486 [info] GET /sources/new 08:39:41.486 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "43"} Pipelines: [:browser] 08:39:41.486 [debug] QUERY OK source="sources" db=0.2ms idle=1505.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" = ?) [43] 08:39:41.487 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1505.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" [] 08:39:41.487 [debug] QUERY OK source="settings" db=0.1ms idle=1026.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 [] 08:39:41.487 [debug] QUERY OK source="settings" db=0.0ms idle=506.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 [] 08:39:41.487 [debug] QUERY OK source="settings" db=0.0ms idle=25.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 [] 08:39:41.488 [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 [] 08:39:41.488 [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 [] 08:39:41.489 [info] Sent 200 in 3ms 08:39:46.487 [info] GET /sources/new 08:39:46.487 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "30"} Pipelines: [:browser] 08:39:46.487 [debug] QUERY OK source="sources" db=0.1ms idle=1506.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" = ?) [30] 08:39:46.488 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1506.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" [] 08:39:46.488 [debug] QUERY OK source="settings" db=0.0ms idle=1507.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:46.488 [debug] QUERY OK source="settings" db=0.0ms idle=1019.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 [] 08:39:46.488 [debug] QUERY OK source="settings" db=0.0ms idle=17.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:46.489 [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 [] 08:39:46.489 [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 [] 08:39:46.490 [info] Sent 200 in 3ms 08:39:51.490 [info] GET /sources/new 08:39:51.490 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "45"} Pipelines: [:browser] 08:39:51.491 [debug] QUERY OK source="sources" db=0.1ms idle=1509.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" = ?) [45] 08:39:51.491 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1510.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" [] 08:39:51.491 [debug] QUERY OK source="settings" db=0.0ms idle=1510.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 [] 08:39:51.491 [debug] QUERY OK source="settings" db=0.0ms idle=1014.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:51.492 [debug] QUERY OK source="settings" db=0.0ms idle=13.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:51.492 [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 [] 08:39:51.492 [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 [] 08:39:51.494 [info] Sent 200 in 3ms 08:39:56.491 [info] GET /sources/new 08:39:56.491 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "55"} Pipelines: [:browser] 08:39:56.491 [debug] QUERY OK source="sources" db=0.1ms idle=1510.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" = ?) [55] 08:39:56.492 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1510.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" [] 08:39:56.492 [debug] QUERY OK source="settings" db=0.0ms idle=1510.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:39:56.492 [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 [] 08:39:56.492 [debug] QUERY OK source="settings" db=0.0ms idle=6.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 [] 08:39:56.493 [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 [] 08:39:56.493 [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 [] 08:39:56.494 [info] Sent 200 in 3ms 08:40:00.816 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:40:01.493 [info] GET /sources/17/media/12959 08:40:01.494 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12959", "source_id" => "17"} Pipelines: [:browser] 08:40:01.494 [debug] QUERY OK source="media_items" db=0.4ms idle=1513.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" = ?) [12959] 08:40:01.495 [debug] QUERY OK source="tasks" db=0.1ms idle=1513.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" [12959] 08:40:01.495 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [17] 08:40:01.495 [debug] QUERY OK source="settings" db=0.0ms idle=679.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 [] 08:40:01.495 [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 [] 08:40:01.496 [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 [] 08:40:01.496 [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] 08:40:01.497 [info] Sent 200 in 3ms 08:40:06.039 [info] {"source":"oban","duration":2552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:06.492 [info] GET /sources/17/media/12953 08:40:06.493 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12953", "source_id" => "17"} Pipelines: [:browser] 08:40:06.493 [debug] QUERY OK source="media_items" db=0.1ms idle=1511.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" = ?) [12953] 08:40:06.493 [debug] QUERY OK source="tasks" db=0.1ms idle=1512.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" [12953] 08:40:06.494 [debug] QUERY OK source="sources" db=0.2ms idle=1512.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" = ?) [17] 08:40:06.494 [debug] QUERY OK source="settings" db=0.0ms idle=991.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 [] 08:40:06.494 [debug] QUERY OK source="settings" db=0.0ms idle=454.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:06.494 [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 [] 08:40:06.495 [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] 08:40:06.495 [info] Sent 200 in 2ms 08:40:11.495 [info] GET /sources/17/media/12955 08:40:11.495 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12955", "source_id" => "17"} Pipelines: [:browser] 08:40:11.495 [debug] QUERY OK source="media_items" db=0.2ms idle=1514.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" = ?) [12955] 08:40:11.496 [debug] QUERY OK source="tasks" db=0.0ms idle=1515.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" [12955] 08:40:11.496 [debug] QUERY OK source="sources" db=0.1ms idle=1515.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" = ?) [17] 08:40:11.496 [debug] QUERY OK source="settings" db=0.0ms idle=1515.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 [] 08:40:11.496 [debug] QUERY OK source="settings" db=0.0ms idle=987.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:11.497 [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 [] 08:40:11.497 [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] 08:40:11.498 [info] Sent 200 in 3ms 08:40:16.740 [info] GET /sources/46/media/2358266 08:40:16.740 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2358266", "source_id" => "46"} Pipelines: [:browser] 08:40:16.740 [debug] QUERY OK source="media_items" db=0.1ms idle=1759.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" = ?) [2358266] 08:40:16.741 [debug] QUERY OK source="tasks" db=0.2ms idle=1759.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" [2358266] 08:40:16.741 [debug] QUERY OK source="sources" db=0.2ms idle=1759.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" = ?) [46] 08:40:16.741 [debug] QUERY OK source="settings" db=0.1ms idle=1224.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:16.741 [debug] QUERY OK source="settings" db=0.0ms idle=224.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:16.741 [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 [] 08:40:16.742 [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] 08:40:16.743 [info] Sent 200 in 3ms 08:40:21.852 [info] GET /sources/26/media/327252/edit 08:40:21.852 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "327252", "source_id" => "26"} Pipelines: [:browser] 08:40:21.853 [debug] QUERY OK source="media_items" db=0.2ms idle=1871.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" = ?) [327252] 08:40:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1872.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 [] 08:40:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1872.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 [] 08:40:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1331.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 [] 08:40:21.854 [info] Sent 200 in 1ms 08:40:26.775 [info] GET /sources/55/media/2378747/edit 08:40:26.775 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2378747", "source_id" => "55"} Pipelines: [:browser] 08:40:26.775 [debug] QUERY OK source="media_items" db=0.1ms idle=1794.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" = ?) [2378747] 08:40:26.775 [debug] QUERY OK source="settings" db=0.0ms idle=1794.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:26.776 [debug] QUERY OK source="settings" db=0.0ms idle=1794.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:26.776 [debug] QUERY OK source="settings" db=0.0ms idle=1248.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:26.777 [info] Sent 200 in 1ms 08:40:31.776 [info] GET /sources/57/media/2161658 08:40:31.776 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161658", "source_id" => "57"} Pipelines: [:browser] 08:40:31.776 [debug] QUERY OK source="media_items" db=0.1ms idle=1795.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" = ?) [2161658] 08:40:31.777 [debug] QUERY OK source="tasks" db=0.2ms idle=1795.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" [2161658] 08:40:31.777 [debug] QUERY OK source="sources" db=0.2ms idle=1796.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" = ?) [57] 08:40:31.777 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=1244.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [278013, 279620, 281084, 282373, 283714, 285036, 286453, 288275, 290096, 292216, 294272, 295998, 297770, 299538] 08:40:31.778 [debug] QUERY OK source="settings" db=0.0ms idle=244.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:31.778 [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 [] 08:40:31.778 [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 [] 08:40:31.779 [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] 08:40:31.780 [info] Sent 200 in 4ms 08:40:36.043 [info] {"source":"oban","duration":3521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:36.469 [info] GET /sources/45/media/2268722/edit 08:40:36.470 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2268722", "source_id" => "45"} Pipelines: [:browser] 08:40:36.470 [debug] QUERY OK source="media_items" db=0.3ms idle=1489.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" = ?) [2268722] 08:40:36.471 [debug] QUERY OK source="settings" db=0.1ms idle=1489.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:36.471 [debug] QUERY OK source="settings" db=0.1ms idle=1490.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:36.471 [debug] QUERY OK source="settings" db=0.0ms idle=932.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:36.472 [info] Sent 200 in 2ms 08:40:41.354 [info] GET /sources/38/media/2074959/edit 08:40:41.354 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2074959", "source_id" => "38"} Pipelines: [:browser] 08:40:41.354 [debug] QUERY OK source="media_items" db=0.1ms idle=1373.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" = ?) [2074959] 08:40:41.355 [debug] QUERY OK source="settings" db=0.0ms idle=1373.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:41.355 [debug] QUERY OK source="settings" db=0.0ms idle=1374.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:41.355 [debug] QUERY OK source="settings" db=0.0ms idle=1374.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 [] 08:40:41.356 [info] Sent 200 in 2ms 08:40:46.356 [info] GET /sources/22/media/307945/edit 08:40:46.356 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "307945", "source_id" => "22"} Pipelines: [:browser] 08:40:46.356 [debug] QUERY OK source="media_items" db=0.2ms idle=1375.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" = ?) [307945] 08:40:46.357 [debug] QUERY OK source="settings" db=0.1ms idle=1375.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:46.357 [debug] QUERY OK source="settings" db=0.0ms idle=1375.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:46.357 [debug] QUERY OK source="settings" db=0.0ms idle=1376.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:46.358 [info] Sent 200 in 2ms 08:40:50.642 [info] GET /sources/17/media/12959/edit 08:40:50.642 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12959", "source_id" => "17"} Pipelines: [:browser] 08:40:50.643 [debug] QUERY OK source="media_items" db=0.1ms idle=661.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" = ?) [12959] 08:40:50.643 [debug] QUERY OK source="settings" db=0.0ms idle=661.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:50.643 [debug] QUERY OK source="settings" db=0.0ms idle=661.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:50.643 [debug] QUERY OK source="settings" db=0.0ms idle=662.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:50.644 [info] Sent 200 in 1ms 08:40:55.547 [info] GET /sources/38/media/2195118 08:40:55.547 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2195118", "source_id" => "38"} Pipelines: [:browser] 08:40:55.548 [debug] QUERY OK source="media_items" db=0.1ms idle=1566.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" = ?) [2195118] 08:40:55.548 [debug] QUERY OK source="tasks" db=0.1ms idle=1567.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" [2195118] 08:40:55.548 [debug] QUERY OK source="sources" db=0.1ms idle=1567.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" = ?) [38] 08:40:55.548 [debug] QUERY OK source="settings" db=0.0ms idle=1567.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:40:55.548 [debug] QUERY OK source="settings" db=0.0ms idle=984.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 [] 08:40:55.549 [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 [] 08:40:55.549 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:40:55.550 [info] Sent 200 in 3ms 08:41:00.533 [info] GET /sources/17/media/12953/edit 08:41:00.533 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12953", "source_id" => "17"} Pipelines: [:browser] 08:41:00.533 [debug] QUERY OK source="media_items" db=0.1ms idle=1551.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" = ?) [12953] 08:41:00.533 [debug] QUERY OK source="settings" db=0.1ms idle=1552.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 [] 08:41:00.534 [debug] QUERY OK source="settings" db=0.0ms idle=1552.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 [] 08:41:00.534 [debug] QUERY OK source="settings" db=0.1ms idle=1552.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:00.535 [info] Sent 200 in 2ms 08:41:00.817 [info] {"source":"oban","duration":401,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:41:05.538 [info] GET /sources/57/media/2161761 08:41:05.538 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161761", "source_id" => "57"} Pipelines: [:browser] 08:41:05.538 [debug] QUERY OK source="media_items" db=0.1ms idle=1557.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" = ?) [2161761] 08:41:05.539 [debug] QUERY OK source="tasks" db=0.1ms idle=1557.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" [2161761] 08:41:05.539 [debug] QUERY OK source="sources" db=0.1ms idle=1557.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" = ?) [57] 08:41:05.539 [debug] QUERY OK source="settings" db=0.0ms idle=1557.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:05.539 [debug] QUERY OK source="settings" db=0.0ms idle=960.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:05.539 [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 [] 08:41:05.540 [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] 08:41:05.541 [info] Sent 200 in 2ms 08:41:06.046 [info] {"source":"oban","duration":2361,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:10.539 [info] GET /sources/17/media/12955/edit 08:41:10.539 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12955", "source_id" => "17"} Pipelines: [:browser] 08:41:10.539 [debug] QUERY OK source="media_items" db=0.1ms idle=1558.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" = ?) [12955] 08:41:10.540 [debug] QUERY OK source="settings" db=0.0ms idle=1558.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:10.540 [debug] QUERY OK source="settings" db=0.0ms idle=1559.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:10.540 [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 [] 08:41:10.541 [info] Sent 200 in 2ms 08:41:15.539 [info] GET /sources/57/media/2161764 08:41:15.539 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161764", "source_id" => "57"} Pipelines: [:browser] 08:41:15.540 [debug] QUERY OK source="media_items" db=0.2ms idle=1558.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" = ?) [2161764] 08:41:15.540 [debug] QUERY OK source="tasks" db=0.1ms idle=1559.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" [2161764] 08:41:15.540 [debug] QUERY OK source="sources" db=0.1ms idle=1559.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" = ?) [57] 08:41:15.540 [debug] QUERY OK source="settings" db=0.0ms idle=1559.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:15.540 [debug] QUERY OK source="settings" db=0.0ms idle=947.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:15.541 [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 [] 08:41:15.541 [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] 08:41:15.542 [info] Sent 200 in 2ms 08:41:20.541 [info] GET /sources/45/media/1716490 08:41:20.541 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1716490", "source_id" => "45"} Pipelines: [:browser] 08:41:20.541 [debug] QUERY OK source="media_items" db=0.1ms idle=1560.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" = ?) [1716490] 08:41:20.542 [debug] QUERY OK source="tasks" db=0.1ms idle=1560.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" [1716490] 08:41:20.542 [debug] QUERY OK source="sources" db=0.1ms idle=1560.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" = ?) [45] 08:41:20.542 [debug] QUERY OK source="settings" db=0.0ms idle=1561.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:20.542 [debug] QUERY OK source="settings" db=0.0ms idle=942.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:20.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 [] 08:41:20.543 [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] 08:41:20.544 [info] Sent 200 in 2ms 08:41:25.542 [info] GET /sources/55/media/1797431 08:41:25.542 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797431", "source_id" => "55"} Pipelines: [:browser] 08:41:25.542 [debug] QUERY OK source="media_items" db=0.2ms idle=1561.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" = ?) [1797431] 08:41:25.543 [debug] QUERY OK source="tasks" db=0.1ms idle=1561.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" [1797431] 08:41:25.543 [debug] QUERY OK source="sources" db=0.2ms idle=1561.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" = ?) [55] 08:41:25.543 [debug] QUERY OK source="settings" db=0.0ms idle=1562.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 [] 08:41:25.543 [debug] QUERY OK source="settings" db=0.0ms idle=936.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:25.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 [] 08:41:25.544 [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] 08:41:25.545 [info] Sent 200 in 3ms 08:41:30.542 [info] GET /sources/45/media/2347026 08:41:30.542 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2347026", "source_id" => "45"} Pipelines: [:browser] 08:41:30.543 [debug] QUERY OK source="media_items" db=0.2ms idle=1561.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" = ?) [2347026] 08:41:30.543 [debug] QUERY OK source="tasks" db=0.1ms idle=1562.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" [2347026] 08:41:30.543 [debug] QUERY OK source="sources" db=0.1ms idle=1562.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" = ?) [45] 08:41:30.544 [debug] QUERY OK source="settings" db=0.1ms idle=1562.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:30.544 [debug] QUERY OK source="settings" db=0.0ms idle=929.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:30.544 [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 [] 08:41:30.544 [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] 08:41:30.545 [info] Sent 200 in 3ms 08:41:35.547 [info] GET /sources/55/media/1797428 08:41:35.547 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797428", "source_id" => "55"} Pipelines: [:browser] 08:41:35.547 [debug] QUERY OK source="media_items" db=0.2ms idle=1566.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" = ?) [1797428] 08:41:35.548 [debug] QUERY OK source="tasks" db=0.1ms idle=1567.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" [1797428] 08:41:35.548 [debug] QUERY OK source="sources" db=0.2ms idle=1567.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" = ?) [55] 08:41:35.548 [debug] QUERY OK source="settings" db=0.0ms idle=1567.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:35.548 [debug] QUERY OK source="settings" db=0.0ms idle=926.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:35.549 [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 [] 08:41:35.549 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:41:35.550 [info] Sent 200 in 3ms 08:41:36.049 [info] {"source":"oban","duration":2318,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:40.550 [info] GET /sources/43/media/2360293 08:41:40.550 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2360293", "source_id" => "43"} Pipelines: [:browser] 08:41:40.550 [debug] QUERY OK source="media_items" db=0.2ms idle=1569.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" = ?) [2360293] 08:41:40.551 [debug] QUERY OK source="tasks" db=0.1ms idle=1569.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" [2360293] 08:41:40.551 [debug] QUERY OK source="sources" db=0.2ms idle=1570.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" = ?) [43] 08:41:40.551 [debug] QUERY OK source="settings" db=0.0ms idle=922.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:40.551 [debug] QUERY OK source="settings" db=0.1ms idle=570.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 [] 08:41:40.552 [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 [] 08:41:40.552 [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] 08:41:40.553 [info] Sent 200 in 3ms 08:41:46.029 [info] GET /sources/57/media/2161766/edit 08:41:46.029 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161766", "source_id" => "57"} Pipelines: [:browser] 08:41:46.029 [debug] QUERY OK source="media_items" db=0.1ms idle=391.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" = ?) [2161766] 08:41:46.029 [debug] QUERY OK source="settings" db=0.0ms idle=48.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:46.030 [debug] QUERY OK source="settings" db=0.0ms idle=48.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:46.030 [debug] QUERY OK source="settings" db=0.0ms idle=49.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:46.030 [info] Sent 200 in 1ms 08:41:50.750 [info] GET /sources/57/media/2161753/edit 08:41:50.750 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161753", "source_id" => "57"} Pipelines: [:browser] 08:41:50.751 [debug] QUERY OK source="media_items" db=0.1ms idle=770.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" = ?) [2161753] 08:41:50.751 [debug] QUERY OK source="settings" db=0.1ms idle=770.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 [] 08:41:50.751 [debug] QUERY OK source="settings" db=0.0ms idle=770.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:50.752 [debug] QUERY OK source="settings" db=0.0ms idle=771.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:50.752 [info] Sent 200 in 1ms 08:41:55.751 [info] GET /sources/57/media/2161763/edit 08:41:55.751 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161763", "source_id" => "57"} Pipelines: [:browser] 08:41:55.752 [debug] QUERY OK source="media_items" db=0.2ms idle=1771.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" = ?) [2161763] 08:41:55.752 [debug] QUERY OK source="settings" db=0.1ms idle=1771.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 [] 08:41:55.752 [debug] QUERY OK source="settings" db=0.0ms idle=1771.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:55.753 [debug] QUERY OK source="settings" db=0.0ms idle=1103.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 [] 08:41:55.753 [info] Sent 200 in 2ms 08:41:59.005 [info] GET /sources/55/media/1797432/edit 08:41:59.005 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1797432", "source_id" => "55"} Pipelines: [:browser] 08:41:59.006 [debug] QUERY OK source="media_items" db=0.1ms idle=351.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" = ?) [1797432] 08:41:59.006 [debug] QUERY OK source="settings" db=0.0ms idle=25.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 [] 08:41:59.006 [debug] QUERY OK source="settings" db=0.0ms idle=25.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 [] 08:41:59.006 [debug] QUERY OK source="settings" db=0.0ms idle=25.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:41:59.007 [info] Sent 200 in 1ms 08:42:00.818 [info] {"source":"oban","duration":152,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:42:03.879 [info] GET /sources/45/media/1790256/edit 08:42:03.879 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1790256", "source_id" => "45"} Pipelines: [:browser] 08:42:03.880 [debug] QUERY OK source="media_items" db=0.3ms idle=1218.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" = ?) [1790256] 08:42:03.880 [debug] QUERY OK source="settings" db=0.1ms idle=899.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 [] 08:42:03.880 [debug] QUERY OK source="settings" db=0.0ms idle=899.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:03.881 [debug] QUERY OK source="settings" db=0.0ms idle=899.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:03.881 [info] Sent 200 in 2ms 08:42:06.052 [info] {"source":"oban","duration":2595,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:42:08.880 [info] GET /sources/45/media/2308517/edit 08:42:08.880 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2308517", "source_id" => "45"} Pipelines: [:browser] 08:42:08.881 [debug] QUERY OK source="media_items" db=0.1ms idle=1899.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" = ?) [2308517] 08:42:08.881 [debug] QUERY OK source="settings" db=0.1ms idle=1900.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 [] 08:42:08.881 [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 [] 08:42:08.882 [debug] QUERY OK source="settings" db=0.0ms idle=901.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:08.882 [info] Sent 200 in 2ms 08:42:12.784 [info] GET /sources/45/media/2045180 08:42:12.785 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2045180", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 08:42:12.785 [debug] QUERY OK source="media_items" db=0.1ms idle=803.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" = ?) [2045180] 08:42:12.785 [debug] QUERY OK source="tasks" db=0.0ms idle=804.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" [2045180] 08:42:12.785 [debug] QUERY OK source="sources" db=0.1ms idle=804.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" = ?) [45] 08:42:12.786 [debug] QUERY OK source="settings" db=0.0ms idle=804.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:12.786 [debug] QUERY OK source="settings" db=0.0ms idle=112.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:12.786 [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 [] 08:42:12.786 [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] 08:42:12.787 [info] Sent 200 in 2ms 08:42:17.704 [info] GET /sources/17/media/12960 08:42:17.704 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12960", "prevent_download" => "true", "source_id" => "17"} Pipelines: [:browser] 08:42:17.704 [debug] QUERY OK source="media_items" db=0.1ms idle=1723.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" = ?) [12960] 08:42:17.705 [debug] QUERY OK source="tasks" db=0.2ms idle=1723.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" [12960] 08:42:17.705 [debug] QUERY OK source="sources" db=0.2ms idle=1723.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" = ?) [17] 08:42:17.705 [debug] QUERY OK source="settings" db=0.1ms idle=1027.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 [] 08:42:17.705 [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 [] 08:42:17.706 [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 [] 08:42:17.706 [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] 08:42:17.707 [info] Sent 200 in 3ms 08:42:22.706 [info] GET /sources/26/media/327251 08:42:22.706 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "327251", "prevent_download" => "true", "source_id" => "26"} Pipelines: [:browser] 08:42:22.706 [debug] QUERY OK source="media_items" db=0.1ms idle=1725.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" = ?) [327251] 08:42:22.707 [debug] QUERY OK source="tasks" db=0.0ms idle=1725.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" [327251] 08:42:22.707 [debug] QUERY OK source="sources" db=0.1ms idle=1725.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" = ?) [26] 08:42:22.707 [debug] QUERY OK source="settings" db=0.1ms idle=1021.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:22.707 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:42:22.708 [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 [] 08:42:22.708 [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] 08:42:22.709 [info] Sent 200 in 2ms 08:42:27.711 [info] GET /sources/17/media/12954 08:42:27.711 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12954", "prevent_download" => "true", "source_id" => "17"} Pipelines: [:browser] 08:42:27.712 [debug] QUERY OK source="media_items" db=0.1ms idle=1730.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" = ?) [12954] 08:42:27.712 [debug] QUERY OK source="tasks" db=0.0ms idle=1731.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" [12954] 08:42:27.712 [debug] QUERY OK source="sources" db=0.1ms idle=1731.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" = ?) [17] 08:42:27.712 [debug] QUERY OK source="settings" db=0.0ms idle=1019.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 [] 08:42:27.713 [debug] QUERY OK source="settings" db=0.0ms idle=18.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:27.713 [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 [] 08:42:27.713 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:42:27.714 [info] Sent 200 in 2ms 08:42:32.711 [info] GET /sources/38/media/2018263 08:42:32.712 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2018263", "prevent_download" => "true", "source_id" => "38"} Pipelines: [:browser] 08:42:32.712 [debug] QUERY OK source="media_items" db=0.1ms idle=1731.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" = ?) [2018263] 08:42:32.712 [debug] QUERY OK source="tasks" db=0.1ms idle=1731.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" [2018263] 08:42:32.713 [debug] QUERY OK source="sources" db=0.2ms idle=1731.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" = ?) [38] 08:42:32.713 [debug] QUERY OK source="settings" db=0.1ms idle=1012.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 [] 08:42:32.713 [debug] QUERY OK source="settings" db=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 [] 08:42:32.714 [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 [] 08:42:32.714 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:42:32.715 [info] Sent 200 in 3ms 08:42:36.055 [info] {"source":"oban","duration":2547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:42:37.712 [info] GET /sources/38/media/2003157 08:42:37.713 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2003157", "prevent_download" => "true", "source_id" => "38"} Pipelines: [:browser] 08:42:37.713 [debug] QUERY OK source="media_items" db=0.2ms idle=1731.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" = ?) [2003157] 08:42:37.714 [debug] QUERY OK source="tasks" db=0.1ms idle=1732.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" [2003157] 08:42:37.714 [debug] QUERY OK source="sources" db=0.2ms idle=1658.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" = ?) [38] 08:42:37.714 [debug] QUERY OK source="settings" db=0.0ms idle=1005.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:37.714 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:37.715 [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 [] 08:42:37.715 [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] 08:42:37.716 [info] Sent 200 in 3ms 08:42:42.713 [info] GET /sources/9/media/6864 08:42:42.713 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6864", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 08:42:42.713 [debug] QUERY OK source="media_items" db=0.1ms idle=1732.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" = ?) [6864] 08:42:42.714 [debug] QUERY OK source="tasks" db=0.1ms idle=1733.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" [6864] 08:42:42.714 [debug] QUERY OK source="sources" db=0.2ms idle=1733.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" = ?) [9] 08:42:42.714 [debug] QUERY OK source="settings" db=0.0ms idle=1733.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 [] 08:42:42.714 [debug] QUERY OK source="settings" db=0.0ms idle=997.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 [] 08:42:42.715 [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 [] 08:42:42.715 [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] 08:42:42.716 [info] Sent 200 in 2ms 08:42:47.714 [info] GET /sources/27/media/2344177/force_download 08:42:47.715 [debug] QUERY OK source="settings" db=0.2ms idle=1734.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 [] 08:42:47.715 [debug] QUERY OK source="settings" db=0.0ms idle=1734.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:47.715 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:42:47.716 [error] #PID<0.189627.0> running PinchflatWeb.Endpoint (connection #PID<0.189606.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2344177/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/27/media/2344177/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2344177/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189627.0>, params: %{}, path_info: ["sources", "27", "media", "2344177", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2344177/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmR8rOZUp9x_QAUXxB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2344177/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2344177/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2344177/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189627.0>, params: %{}, path_info: ["sources", "27", "media", "2344177", "force_download"], path_ (truncated) 08:42:52.716 [info] GET /sources/45/media/2347026/force_download 08:42:52.717 [debug] QUERY OK source="settings" db=0.1ms idle=1736.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:52.717 [debug] QUERY OK source="settings" db=0.0ms idle=1736.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 [] 08:42:52.717 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:42:52.717 [error] #PID<0.189628.0> running PinchflatWeb.Endpoint (connection #PID<0.189606.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2347026/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/45/media/2347026/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2347026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189628.0>, params: %{}, path_info: ["sources", "45", "media", "2347026", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2347026/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmSPTyVM9go-0AUXyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2347026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2347026/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189606.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2347026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 53566}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189628.0>, params: %{}, path_info: ["sources", "45", "media", "2347026", "force_download"], path_ (truncated) 08:42:57.723 [info] GET /sources/52/media/1301394/force_download 08:42:57.724 [debug] QUERY OK source="settings" db=0.1ms idle=1743.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:57.724 [debug] QUERY OK source="settings" db=0.1ms idle=1743.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 [] 08:42:57.724 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:42:57.724 [error] #PID<0.189630.0> running PinchflatWeb.Endpoint (connection #PID<0.189629.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/1301394/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/52/media/1301394/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301394/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189630.0>, params: %{}, path_info: ["sources", "52", "media", "1301394", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/1301394/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmSh9lSZPxFwAAUXzB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301394/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/1301394/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301394/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189630.0>, params: %{}, path_info: ["sources", "52", "media", "1301394", "force_download"], path_ (truncated) 08:43:00.819 [info] {"source":"oban","duration":254,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:43:02.726 [info] GET /sources/27/media/878963/force_download 08:43:02.726 [debug] QUERY OK source="settings" db=0.2ms idle=1745.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 [] 08:43:02.726 [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 [] 08:43:02.726 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:43:02.727 [error] #PID<0.189633.0> running PinchflatWeb.Endpoint (connection #PID<0.189629.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/878963/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/27/media/878963/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/878963/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189633.0>, params: %{}, path_info: ["sources", "27", "media", "878963", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/878963/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmS0mJ5prnQSQAUX1B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/878963/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/878963/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/878963/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189633.0>, params: %{}, path_info: ["sources", "27", "media", "878963", "force_download"], path_params: % (truncated) 08:43:06.059 [info] {"source":"oban","duration":3638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:07.727 [info] GET /sources/55/media/1797432/force_download 08:43:07.727 [debug] QUERY OK source="settings" db=0.1ms idle=1746.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:07.728 [debug] QUERY OK source="settings" db=0.0ms idle=1746.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:07.728 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:43:07.728 [error] #PID<0.189634.0> running PinchflatWeb.Endpoint (connection #PID<0.189629.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/1797432/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/55/media/1797432/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189634.0>, params: %{}, path_info: ["sources", "55", "media", "1797432", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/1797432/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmTHOnBDG8gDEAUX2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/1797432/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189634.0>, params: %{}, path_info: ["sources", "55", "media", "1797432", "force_download"], path_ (truncated) 08:43:12.729 [info] GET /sources/52/media/1301395/force_download 08:43:12.730 [debug] QUERY OK source="settings" db=0.2ms idle=1749.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:12.730 [debug] QUERY OK source="settings" db=0.0ms idle=1749.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:12.730 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:43:12.731 [error] #PID<0.189635.0> running PinchflatWeb.Endpoint (connection #PID<0.189629.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/1301395/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/52/media/1301395/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301395/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189635.0>, params: %{}, path_info: ["sources", "52", "media", "1301395", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/1301395/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmTZ3RnyH7wCYAUX3B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301395/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/1301395/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189629.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/1301395/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33594}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYQVRUWWozZF9pMjFTTFZRMTVNbXJLaUl3.NqrGdKlXwaZB5fdVJCbXCbvdg2wtRUptosWFSTSlNo4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189635.0>, params: %{}, path_info: ["sources", "52", "media", "1301395", "force_download"], path_ (truncated) 08:43:18.265 [info] GET /media/d05653c1-123c-408d-8408-de6c215f7d09/stream 08:43:18.265 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "d05653c1-123c-408d-8408-de6c215f7d09"} Pipelines: [:maybe_basic_auth] 08:43:18.266 [debug] QUERY OK source="media_items" db=0.9ms idle=501.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" = ?) ["d05653c1-123c-408d-8408-de6c215f7d09"] 08:43:18.266 [debug] Invalid range request for media item: d05653c1-123c-408d-8408-de6c215f7d09 - serving full file 08:43:18.266 [info] Sent 200 in 1ms 08:43:32.662 [info] GET /sources/38/media/1850728/edit 08:43:32.662 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1850728", "source_id" => "38"} Pipelines: [:browser] 08:43:32.662 [debug] QUERY OK source="media_items" db=0.1ms idle=877.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" = ?) [1850728] 08:43:32.663 [debug] QUERY OK source="settings" db=0.0ms idle=682.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:32.663 [debug] QUERY OK source="settings" db=0.0ms idle=682.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 [] 08:43:32.663 [debug] QUERY OK source="settings" db=0.0ms idle=682.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:43:32.664 [info] Sent 200 in 1ms 08:43:36.062 [info] {"source":"oban","duration":2294,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:38.279 [info] GET /media/2a72fa1f-6219-4d66-9a59-128074685cb7/stream 08:43:38.279 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "2a72fa1f-6219-4d66-9a59-128074685cb7"} Pipelines: [:maybe_basic_auth] 08:43:38.280 [debug] QUERY OK source="media_items" db=0.8ms idle=487.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."uuid" = ?) ["2a72fa1f-6219-4d66-9a59-128074685cb7"] 08:43:38.280 [debug] Invalid range request for media item: 2a72fa1f-6219-4d66-9a59-128074685cb7 - serving full file 08:43:38.280 [info] Sent 200 in 1ms 08:44:00.820 [info] {"source":"oban","duration":356,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:44:06.066 [info] {"source":"oban","duration":2993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:36.069 [info] {"source":"oban","duration":2456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:40.072 [info] GET /sources/55/media/2378747/force_download 08:44:40.072 [debug] QUERY OK source="settings" db=0.2ms idle=189.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:44:40.073 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:44:40.073 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:44:40.073 [error] #PID<0.189650.0> running PinchflatWeb.Endpoint (connection #PID<0.189649.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2378747/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/55/media/2378747/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189649.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2378747/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189650.0>, params: %{}, path_info: ["sources", "55", "media", "2378747", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2378747/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmYfPXEXREADsAUX9B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189649.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2378747/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2378747/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189649.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2378747/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189650.0>, params: %{}, path_info: ["sources", "55", "media", "2378747", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:44:50.642 [info] GET /sources/25/media/2359890/edit 08:44:50.642 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2359890", "source_id" => "25"} Pipelines: [:browser] 08:44:50.642 [debug] QUERY OK source="media_items" db=0.1ms idle=740.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" = ?) [2359890] 08:44:50.642 [debug] QUERY OK source="settings" db=0.1ms idle=661.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:44:50.643 [debug] QUERY OK source="settings" db=0.0ms idle=661.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:44:50.643 [debug] QUERY OK source="settings" db=0.0ms idle=662.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:44:50.644 [info] Sent 200 in 2ms 08:45:00.821 [info] {"source":"oban","duration":152,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:45:06.072 [info] {"source":"oban","duration":2604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:45:36.075 [info] {"source":"oban","duration":2455,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:00.822 [info] {"source":"oban","duration":142,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:46:06.079 [info] {"source":"oban","duration":2259,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:07.920 [info] GET /sources/55/media/2378747 08:46:07.920 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2378747", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 08:46:07.921 [debug] QUERY OK source="media_items" db=0.2ms idle=1940.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" = ?) [2378747] 08:46:07.921 [debug] QUERY OK source="tasks" db=0.1ms idle=1940.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" [2378747] 08:46:07.921 [debug] QUERY OK source="sources" db=0.2ms idle=1910.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" = ?) [55] 08:46:07.922 [debug] QUERY OK source="settings" db=0.0ms idle=1842.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:46:07.922 [debug] QUERY OK source="settings" db=0.0ms idle=909.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:46:07.922 [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 [] 08:46:07.923 [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] 08:46:07.923 [info] Sent 200 in 3ms 08:46:12.794 [info] GET /sources/17/media/314734/edit 08:46:12.794 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "314734", "source_id" => "17"} Pipelines: [:browser] 08:46:12.794 [debug] QUERY OK source="media_items" db=0.2ms idle=1813.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" = ?) [314734] 08:46:12.795 [debug] QUERY OK source="settings" db=0.1ms idle=1813.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:46:12.795 [debug] QUERY OK source="settings" db=0.0ms idle=1814.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:46:12.795 [debug] QUERY OK source="settings" db=0.0ms idle=1778.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:46:12.796 [info] Sent 200 in 2ms 08:46:36.082 [info] {"source":"oban","duration":2305,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:00.823 [info] {"source":"oban","duration":288,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:47:06.085 [info] {"source":"oban","duration":2726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:13.115 [info] {"args":{"id":35},"id":300524,"meta":{},"system_time":1777556833115729456,"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"]} 08:47:13.116 [debug] QUERY OK source="sources" db=0.5ms idle=1134.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" = ?) [35] 08:47:13.117 [debug] QUERY OK source="settings" db=0.4ms idle=1135.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.120 [debug] QUERY OK source="media_items" db=2.8ms idle=1009.9ms 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")))) [35] 08:47:13.120 [debug] QUERY OK source="media_items" db=0.8ms idle=10.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 08:47:13.121 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:47:13.121 [debug] QUERY OK source="settings" db=0.0ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.121 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.124 [debug] QUERY OK source="media_items" db=1.9ms idle=2.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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [35] 08:47:13.126 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:47:13.126 [debug] Current batch of media processed. Will check again in 1000ms 08:47:13.126 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.126 [debug] QUERY OK source="settings" db=0.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.126 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:13.126 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/84/e0/84e080621725e9d09290219879df74e38783b2edfbb1bf41d9c8547711d5a9ba.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d7/08/d708c0f51f7300226246eca08eac5bf0a2ca42ce900178c43321f4d68f3c8825.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:47:14.126 [debug] Current batch of media processed. Will check again in 1000ms 08:47:15.128 [debug] Current batch of media processed. Will check again in 1000ms 08:47:16.129 [debug] Current batch of media processed. Will check again in 1000ms 08:47:17.130 [debug] Current batch of media processed. Will check again in 1000ms 08:47:18.131 [debug] Current batch of media processed. Will check again in 1000ms 08:47:19.132 [debug] Current batch of media processed. Will check again in 1000ms 08:47:20.132 [debug] Current batch of media processed. Will check again in 1000ms 08:47:21.133 [debug] Current batch of media processed. Will check again in 1000ms 08:47:22.135 [debug] Current batch of media processed. Will check again in 1000ms 08:47:23.135 [debug] Current batch of media processed. Will check again in 1000ms 08:47:24.137 [debug] Current batch of media processed. Will check again in 1000ms 08:47:25.138 [debug] Current batch of media processed. Will check again in 1000ms 08:47:26.139 [debug] Current batch of media processed. Will check again in 1000ms 08:47:27.140 [debug] Current batch of media processed. Will check again in 1000ms 08:47:28.141 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 329, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", "id" => "tg8PqPcOWjo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tg8PqPcOWjo", "playlist_index" => 1, "timestamp" => 1777554101, "title" => "A New Folder Just Appeared In Your Home Directory", "upload_date" => "20260430"} 08:47:28.141 [debug] QUERY OK source="sources" db=0.1ms idle=1160.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 (?)) [35] 08:47:28.141 [debug] QUERY OK source="sources" db=0.0ms idle=1160.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" = ?) [35] 08:47:28.144 [debug] QUERY OK source="media_items" db=2.7ms idle=1160.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 13:01:41Z], 35] 08:47:28.147 [debug] QUERY OK source="media_items" db=2.0ms idle=1013.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "3ded6ae1-85d7-4d0e-90c0-bdf7f2829218", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, false, false, 35, [], 99, ~U[2026-04-30 13:01:41Z], ~U[2026-04-30 13:47:28Z], ~U[2026-04-30 13:47:28Z], "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, 35, ~U[2026-04-30 13:01:41Z]] 08:47:28.147 [debug] QUERY OK source="sources" db=0.1ms idle=14.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" = ?) [35] 08:47:28.147 [debug] QUERY OK source="media_profiles" db=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] 08:47:28.148 [debug] QUERY OK source="media_items" db=0.2ms 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 [2845295] 08:47:28.148 [info] Kicking off download for media item #2845295 (tg8PqPcOWjo) 08:47:28.150 [debug] QUERY OK source="tasks" db=0.1ms idle=2.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300610, 2845295, ~U[2026-04-30 13:47:28Z], ~U[2026-04-30 13:47:28Z]] 08:47:28.150 [debug] Current batch of media processed. Will check again in 1000ms 08:47:28.156 [info] {"args":{"id":2845295},"id":300610,"meta":{},"system_time":1777556848156387969,"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"]} 08:47:28.156 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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" = ?) [2845295] 08:47:28.156 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:47:28.157 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 08:47:28.157 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:47:28.157 [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 [2845295] 08:47:28.158 [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" = ?) [2845295] 08:47:28.158 [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] 08:47:28.158 [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 [] 08:47:28.158 [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 [] 08:47:28.159 [debug] Running yt-dlp command for action: get_downloadable_status 08:47:28.159 [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 [] 08:47:28.159 [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 [] 08:47:28.160 [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 [] 08:47:28.160 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/49/6349f2ed994991d5d5014432ea37cf11dfaaf9ea30b23dd2f4bdaa1ce9633109.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:47:29.151 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1421, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", "id" => "3RpHc4Wl0N8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "playlist_index" => 2, "timestamp" => 1777296686, "title" => "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "upload_date" => "20260427"} 08:47:29.152 [debug] QUERY OK source="sources" db=0.1ms idle=993.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 (?)) [35] 08:47:29.152 [debug] QUERY OK source="sources" db=0.0ms idle=992.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" = ?) [35] 08:47:29.155 [debug] QUERY OK source="media_items" db=2.8ms idle=992.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 13:31:26Z], 35] 08:47:29.156 [debug] QUERY OK source="media_items" db=1.0ms idle=995.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "02a122bb-d48c-4803-acb4-57e0f932bc80", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, false, false, 35, [], 98, ~U[2026-04-27 13:31:26Z], ~U[2026-04-30 13:47:29Z], ~U[2026-04-30 13:47:29Z], "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, 35, ~U[2026-04-27 13:31:26Z]] 08:47:29.157 [debug] QUERY OK source="sources" db=0.1ms idle=22.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" = ?) [35] 08:47:29.157 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:47:29.157 [debug] QUERY OK source="media_items" db=0.2ms 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 [2822371] 08:47:29.157 [debug] Current batch of media processed. Will check again in 1000ms 08:47:30.158 [debug] Current batch of media processed. Will check again in 1000ms 08:47:30.729 [info] GET /media/59ec1403-5ce2-4db5-b658-46cf4d4d7432/stream 08:47:30.730 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "59ec1403-5ce2-4db5-b658-46cf4d4d7432"} Pipelines: [:maybe_basic_auth] 08:47:30.731 [debug] QUERY OK source="media_items" db=0.8ms idle=1573.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" = ?) ["59ec1403-5ce2-4db5-b658-46cf4d4d7432"] 08:47:30.731 [debug] Invalid range request for media item: 59ec1403-5ce2-4db5-b658-46cf4d4d7432 - serving full file 08:47:30.731 [info] Sent 200 in 1ms 08:47:31.159 [debug] Current batch of media processed. Will check again in 1000ms 08:47:32.160 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 457, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", "id" => "o3RJSUBtsFg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o3RJSUBtsFg", "playlist_index" => 3, "timestamp" => 1777035694, "title" => "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "upload_date" => "20260424"} 08:47:32.160 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 08:47:32.161 [debug] QUERY OK source="sources" db=0.1ms idle=1179.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" = ?) [35] 08:47:32.163 [debug] QUERY OK source="media_items" db=2.6ms idle=1023.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 13:01:34Z], 35] 08:47:32.165 [debug] QUERY OK source="media_items" db=0.8ms idle=183.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "a5115679-9237-4215-9b83-69f90075f126", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, false, false, 35, [], 98, ~U[2026-04-24 13:01:34Z], ~U[2026-04-30 13:47:32Z], ~U[2026-04-30 13:47:32Z], "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, 35, ~U[2026-04-24 13:01:34Z]] 08:47:32.165 [debug] QUERY OK source="sources" db=0.1ms idle=26.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" = ?) [35] 08:47:32.165 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:47:32.166 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2799346] 08:47:32.166 [debug] Current batch of media processed. Will check again in 1000ms 08:47:33.132 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/49/6349f2ed994991d5d5014432ea37cf11dfaaf9ea30b23dd2f4bdaa1ce9633109.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:47:33.132 [debug] Running yt-dlp command for action: download 08:47:33.132 [debug] QUERY OK source="settings" db=0.4ms idle=968.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 [] 08:47:33.133 [debug] QUERY OK source="settings" db=0.0ms idle=967.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:33.133 [debug] QUERY OK source="settings" db=0.0ms idle=967.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:33.133 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0a/30/0a30620ab26ff609ab4c59e095925370262b9fde0bf5861fc01435b785847b90.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:47:33.166 [debug] Current batch of media processed. Will check again in 1000ms 08:47:34.168 [debug] Current batch of media processed. Will check again in 1000ms 08:47:35.169 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 790, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", "id" => "ry2oqoDY_lA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ry2oqoDY_lA", "playlist_index" => 4, "timestamp" => 1776770099, "title" => "Non-Programmer Builds Web App In Minutes", "upload_date" => "20260421"} 08:47:35.169 [debug] QUERY OK source="sources" db=0.1ms idle=1028.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 (?)) [35] 08:47:35.169 [debug] QUERY OK source="sources" db=0.1ms idle=188.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" = ?) [35] 08:47:35.172 [debug] QUERY OK source="media_items" db=2.7ms idle=189.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 11:14:59Z], 35] 08:47:35.174 [debug] QUERY OK source="media_items" db=1.0ms idle=191.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "bebd2814-1ba1-42d2-a1e0-e3d34cbd7b5e", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, false, false, 35, [], 98, ~U[2026-04-21 11:14:59Z], ~U[2026-04-30 13:47:35Z], ~U[2026-04-30 13:47:35Z], "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, 35, ~U[2026-04-21 11:14:59Z]] 08:47:35.174 [debug] QUERY OK source="sources" db=0.1ms idle=32.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" = ?) [35] 08:47:35.174 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 08:47:35.175 [debug] QUERY OK source="media_items" db=0.2ms 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 [2776103] 08:47:35.175 [debug] Current batch of media processed. Will check again in 1000ms 08:47:35.364 [info] GET /sources/45/media/1949827/edit 08:47:35.364 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1949827", "source_id" => "45"} Pipelines: [:browser] 08:47:35.365 [debug] QUERY OK source="media_items" db=0.5ms idle=191.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" = ?) [1949827] 08:47:35.365 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:47:35.365 [debug] QUERY OK source="settings" db=0.0ms idle=190.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:35.365 [debug] QUERY OK source="settings" db=0.0ms idle=190.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:35.366 [info] Sent 200 in 2ms 08:47:36.089 [info] {"source":"oban","duration":3204,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:36.176 [debug] Current batch of media processed. Will check again in 1000ms 08:47:37.177 [debug] Current batch of media processed. Will check again in 1000ms 08:47:38.178 [debug] Current batch of media processed. Will check again in 1000ms 08:47:39.179 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1205, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", "id" => "tdr-144Ondo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tdr-144Ondo", "playlist_index" => 5, "timestamp" => 1776517299, "title" => "Is Artix Linux Just A Protest Distro?", "upload_date" => "20260418"} 08:47:39.179 [debug] QUERY OK source="sources" db=0.2ms idle=1034.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 (?)) [35] 08:47:39.180 [debug] QUERY OK source="sources" db=0.1ms idle=198.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" = ?) [35] 08:47:39.182 [debug] QUERY OK source="media_items" db=2.6ms idle=199.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 13:01:39Z], 35] 08:47:39.184 [debug] QUERY OK source="media_items" db=0.9ms idle=201.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "6277ae56-ef7c-48b3-b9bc-191509695add", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, false, false, 35, [], 98, ~U[2026-04-18 13:01:39Z], ~U[2026-04-30 13:47:39Z], ~U[2026-04-30 13:47:39Z], "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, 35, ~U[2026-04-18 13:01:39Z]] 08:47:39.184 [debug] QUERY OK source="sources" db=0.1ms idle=37.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" = ?) [35] 08:47:39.184 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:47:39.184 [debug] QUERY OK source="media_items" db=0.1ms 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 [2752907] 08:47:39.185 [debug] Current batch of media processed. Will check again in 1000ms 08:47:40.186 [debug] Current batch of media processed. Will check again in 1000ms 08:47:41.187 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 992, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", "id" => "Bh4cQJ5aTUg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "playlist_index" => 6, "timestamp" => 1775998818, "title" => "CuerdOS Is Not Just Another Distro! (Or Is It?)", "upload_date" => "20260412"} 08:47:41.188 [debug] QUERY OK source="sources" db=0.1ms idle=206.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 (?)) [35] 08:47:41.188 [debug] QUERY OK source="sources" db=0.1ms idle=207.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" = ?) [35] 08:47:41.191 [debug] QUERY OK source="media_items" db=2.8ms idle=207.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:18Z], 35] 08:47:41.196 [debug] QUERY OK source="media_items" db=4.6ms idle=210.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "9f4e1374-729f-407d-a34d-babcd3f8233d", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, false, false, 35, [], 98, ~U[2026-04-12 13:00:18Z], ~U[2026-04-30 13:47:41Z], ~U[2026-04-30 13:47:41Z], "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, 35, ~U[2026-04-12 13:00:18Z]] 08:47:41.196 [debug] QUERY OK source="sources" db=0.1ms idle=45.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" = ?) [35] 08:47:41.197 [debug] QUERY OK source="media_profiles" db=0.3ms idle=8.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] 08:47:41.197 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [2712339] 08:47:41.197 [debug] Current batch of media processed. Will check again in 1000ms 08:47:42.198 [debug] Current batch of media processed. Will check again in 1000ms 08:47:43.199 [debug] Current batch of media processed. Will check again in 1000ms 08:47:44.200 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 513, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", "id" => "soN2EVOh1O8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=soN2EVOh1O8", "playlist_index" => 7, "timestamp" => 1775739705, "title" => "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "upload_date" => "20260409"} 08:47:44.200 [debug] QUERY OK source="sources" db=0.1ms idle=1219.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 (?)) [35] 08:47:44.200 [debug] QUERY OK source="sources" db=0.1ms idle=1219.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" = ?) [35] 08:47:44.203 [debug] QUERY OK source="media_items" db=2.9ms idle=1219.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:01:45Z], 35] 08:47:44.205 [debug] QUERY OK source="media_items" db=0.8ms idle=1050.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "e109e339-a6a8-4851-9c64-6d8a3336b998", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, false, false, 35, [], 98, ~U[2026-04-09 13:01:45Z], ~U[2026-04-30 13:47:44Z], ~U[2026-04-30 13:47:44Z], "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, 35, ~U[2026-04-09 13:01:45Z]] 08:47:44.205 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 08:47:44.205 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:47:44.206 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2688265] 08:47:44.206 [debug] Current batch of media processed. Will check again in 1000ms 08:47:45.207 [debug] Current batch of media processed. Will check again in 1000ms 08:47:46.208 [debug] Current batch of media processed. Will check again in 1000ms 08:47:47.209 [debug] Current batch of media processed. Will check again in 1000ms 08:47:48.210 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 432, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", "id" => "GPcM_MKIfXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GPcM_MKIfXs", "playlist_index" => 8, "timestamp" => 1775480427, "title" => "Has A.I. Made The Web Obsolete?", "upload_date" => "20260406"} 08:47:48.210 [debug] QUERY OK source="sources" db=0.2ms idle=228.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 (?)) [35] 08:47:48.210 [debug] QUERY OK source="sources" db=0.1ms idle=229.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" = ?) [35] 08:47:48.214 [debug] QUERY OK source="media_items" db=2.8ms idle=229.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 13:00:27Z], 35] 08:47:48.215 [debug] QUERY OK source="media_items" db=0.8ms idle=232.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "6dd633e8-8e14-4e9d-907e-5e24ffab70d4", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, false, false, 35, [], 98, ~U[2026-04-06 13:00:27Z], ~U[2026-04-30 13:47:48Z], ~U[2026-04-30 13:47:48Z], "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, 35, ~U[2026-04-06 13:00:27Z]] 08:47:48.215 [debug] QUERY OK source="sources" db=0.2ms idle=52.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" = ?) [35] 08:47:48.215 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:47:48.216 [debug] QUERY OK source="media_items" db=0.1ms 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 [2662359] 08:47:48.216 [debug] Current batch of media processed. Will check again in 1000ms 08:47:49.217 [debug] Current batch of media processed. Will check again in 1000ms 08:47:50.218 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 396, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", "id" => "WZMf-fC45ak", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WZMf-fC45ak", "playlist_index" => 9, "timestamp" => 1775221262, "title" => "'date' - print or set date and time - Video Man Pages", "upload_date" => "20260403"} 08:47:50.218 [debug] QUERY OK source="sources" db=0.2ms idle=237.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 (?)) [35] 08:47:50.219 [debug] QUERY OK source="sources" db=0.1ms idle=238.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" = ?) [35] 08:47:50.222 [debug] QUERY OK source="media_items" db=2.9ms idle=238.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 13:01:02Z], 35] 08:47:50.224 [debug] QUERY OK source="media_items" db=1.1ms idle=241.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "a5ea5a31-5f82-43e4-a6f9-b5bcdf2f1ea7", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-04-03 13:01:02Z], ~U[2026-04-30 13:47:50Z], ~U[2026-04-30 13:47:50Z], "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, 35, ~U[2026-04-03 13:01:02Z]] 08:47:50.224 [debug] QUERY OK source="sources" db=0.1ms idle=58.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" = ?) [35] 08:47:50.224 [debug] QUERY OK source="media_profiles" db=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] 08:47:50.225 [debug] QUERY OK source="media_items" db=0.1ms 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 [2639557] 08:47:50.225 [debug] Current batch of media processed. Will check again in 1000ms 08:47:51.226 [debug] Current batch of media processed. Will check again in 1000ms 08:47:52.227 [debug] Current batch of media processed. Will check again in 1000ms 08:47:53.228 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 226, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", "id" => "G9bWGPlcZmI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=G9bWGPlcZmI", "playlist_index" => 10, "timestamp" => 1775142909, "title" => "'cal' - display a calendar - Video Man Pages", "upload_date" => "20260402"} 08:47:53.228 [debug] QUERY OK source="sources" db=0.2ms idle=1247.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 (?)) [35] 08:47:53.229 [debug] QUERY OK source="sources" db=0.0ms idle=1248.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" = ?) [35] 08:47:53.231 [debug] QUERY OK source="media_items" db=2.6ms idle=1248.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 15:15:09Z], 35] 08:47:53.241 [debug] QUERY OK source="media_items" db=9.6ms idle=1063.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "c3292cf7-3e41-4958-b440-a946a6149ccc", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, false, false, 35, [], 97, ~U[2026-04-02 15:15:09Z], ~U[2026-04-30 13:47:53Z], ~U[2026-04-30 13:47:53Z], "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, 35, ~U[2026-04-02 15:15:09Z]] 08:47:53.242 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:47:53.242 [debug] QUERY OK source="media_profiles" db=0.1ms idle=13.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] 08:47:53.242 [debug] QUERY OK source="media_items" db=0.1ms idle=13.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 [2632289] 08:47:53.242 [debug] Current batch of media processed. Will check again in 1000ms 08:47:54.243 [debug] Current batch of media processed. Will check again in 1000ms 08:47:55.245 [debug] Current batch of media processed. Will check again in 1000ms 08:47:55.782 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0a/30/0a30620ab26ff609ab4c59e095925370262b9fde0bf5861fc01435b785847b90.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:47:55.807 [debug] Running yt-dlp command for action: download_thumbnail 08:47:55.808 [debug] QUERY OK source="settings" db=0.1ms idle=827.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:55.808 [debug] QUERY OK source="settings" db=0.0ms idle=827.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 [] 08:47:55.808 [debug] QUERY OK source="settings" db=0.0ms idle=827.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:47:55.808 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2845295/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/73/42/73422b71c2f68df62bbe8f79f2c3b79a500fe5d5fbc79e0d3d5bd6e9360b766a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:47:56.245 [debug] Current batch of media processed. Will check again in 1000ms 08:47:57.247 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 696, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", "id" => "4am_n25wOuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4am_n25wOuI", "playlist_index" => 11, "timestamp" => 1774875606, "title" => "Fuzzel Is A Run Launcher For Wayland Desktops", "upload_date" => "20260330"} 08:47:57.247 [debug] QUERY OK source="sources" db=0.3ms idle=266.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 (?)) [35] 08:47:57.248 [debug] QUERY OK source="sources" db=0.2ms idle=266.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" = ?) [35] 08:47:57.251 [debug] QUERY OK source="media_items" db=2.8ms idle=267.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 13:00:06Z], 35] 08:47:57.252 [debug] QUERY OK source="media_items" db=1.0ms idle=270.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "d9e96c39-d4f5-4086-94ec-66aac0ddd291", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, false, false, 35, [], 98, ~U[2026-03-30 13:00:06Z], ~U[2026-04-30 13:47:57Z], ~U[2026-04-30 13:47:57Z], "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, 35, ~U[2026-03-30 13:00:06Z]] 08:47:57.252 [debug] QUERY OK source="sources" db=0.2ms idle=78.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" = ?) [35] 08:47:57.253 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 08:47:57.253 [debug] QUERY OK source="media_items" db=0.3ms idle=5.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 [2608494] 08:47:57.253 [debug] Current batch of media processed. Will check again in 1000ms 08:47:58.254 [debug] Current batch of media processed. Will check again in 1000ms 08:47:59.256 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1579, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", "id" => "K5J4LG4detc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=K5J4LG4detc", "playlist_index" => 12, "timestamp" => 1774615549, "title" => "Installation and First Look at LinuxHub Prime", "upload_date" => "20260327"} 08:47:59.256 [debug] QUERY OK source="sources" db=0.1ms idle=275.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 (?)) [35] 08:47:59.256 [debug] QUERY OK source="sources" db=0.0ms idle=275.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" = ?) [35] 08:47:59.259 [debug] QUERY OK source="media_items" db=2.7ms idle=275.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:45:49Z], 35] 08:47:59.261 [debug] QUERY OK source="media_items" db=1.0ms idle=278.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "3ada324f-92ee-43a2-811a-38c46f3c7432", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, false, false, 35, [], 98, ~U[2026-03-27 12:45:49Z], ~U[2026-04-30 13:47:59Z], ~U[2026-04-30 13:47:59Z], "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, 35, ~U[2026-03-27 12:45:49Z]] 08:47:59.261 [debug] QUERY OK source="sources" db=0.2ms idle=83.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" = ?) [35] 08:47:59.261 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:47:59.262 [debug] QUERY OK source="media_items" db=0.2ms 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 [2585140] 08:47:59.262 [debug] Current batch of media processed. Will check again in 1000ms 08:48:00.263 [debug] Current batch of media processed. Will check again in 1000ms 08:48:00.319 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tg8PqPcOWjo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2845295/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/73/42/73422b71c2f68df62bbe8f79f2c3b79a500fe5d5fbc79e0d3d5bd6e9360b766a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:48:00.320 [debug] QUERY OK db=0.0ms idle=1059.0ms begin [] 08:48:00.321 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "predicted_media_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:47:55Z], "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043099_A New Folder Just Appeared In Your Home Directory.mp4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043099_A New Folder Just Appeared In Your Home Directory.info.json", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043099_A New Folder Just Appeared In Your Home Directory.nfo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043099_A New Folder Just Appeared In Your Home Directory.mp4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043099_A New Folder Just Appeared In Your Home Directory-thumb.jpg", ~U[2026-04-30 13:48:00Z], 2845295] 08:48:00.322 [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/2845295/metadata.json.gz", "/config/metadata/media_items/2845295/thumbnail.jpg", 2845295, ~U[2026-04-30 13:48:00Z], ~U[2026-04-30 13:48:00Z]] 08:48:00.322 [debug] QUERY OK db=0.2ms commit [] 08:48:00.323 [debug] QUERY OK source="media_items" db=0.5ms idle=1060.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [91166443, ~U[2026-04-30 13:48:00Z], 2845295] 08:48:00.323 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:00.323 [info] {"args":{"id":2845295},"id":300610,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32166887,"event":"job:stop","queue_time":155941,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:00.824 [info] {"source":"oban","duration":521,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:48:01.187 [info] {"args":{"id":52},"id":300609,"meta":{},"system_time":1777556881187476609,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:48:01.187 [debug] QUERY OK source="sources" db=0.1ms idle=864.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" = ?) [52] 08:48:01.188 [debug] QUERY OK source="settings" db=0.1ms idle=858.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:01.188 [debug] QUERY OK source="media_profiles" db=0.2ms idle=363.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] 08:48:01.188 [debug] QUERY OK source="settings" db=0.1ms idle=7.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 [] 08:48:01.188 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 08:48:01.263 [debug] Current batch of media processed. Will check again in 1000ms 08:48:01.373 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:48:01.374 [debug] QUERY OK source="media_items" db=0.4ms idle=186.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:48:01.375 [debug] QUERY OK source="settings" db=0.1ms idle=186.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:01.375 [debug] QUERY OK source="settings" db=0.0ms idle=186.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:01.375 [debug] Running yt-dlp command for action: get_media_attributes 08:48:01.376 [debug] QUERY OK source="settings" db=0.0ms idle=187.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 [] 08:48:01.376 [debug] QUERY OK source="settings" db=0.0ms idle=187.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 [] 08:48:01.376 [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 [] 08:48:01.376 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/3f/9d/3f9d77e631402b3a9845d7250a74c2f32de9756856e02fb0405e2b15a10524fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:02.265 [debug] Current batch of media processed. Will check again in 1000ms 08:48:03.194 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/3f/9d/3f9d77e631402b3a9845d7250a74c2f32de9756856e02fb0405e2b15a10524fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 08:48:03.194 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 08:48:03.195 [debug] QUERY OK source="media_items" db=0.7ms idle=213.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 ((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")))) [52] 08:48:03.197 [debug] QUERY OK source="tasks" db=0.2ms idle=216.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300611, 1301334, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.199 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300612, 1301335, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.202 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300613, 1301347, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.204 [info] {"args":{"id":1301334},"id":300611,"meta":{},"system_time":1777556883204169157,"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"]} 08:48:03.204 [info] {"args":{"id":1301335},"id":300612,"meta":{},"system_time":1777556883204245596,"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"]} 08:48:03.204 [debug] QUERY OK source="media_items" db=0.5ms 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 WHERE (m0."id" = ?) [1301334] 08:48:03.205 [debug] QUERY OK source="media_items" db=0.5ms 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 WHERE (m0."id" = ?) [1301335] 08:48:03.205 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:03.205 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:03.205 [debug] QUERY OK source="sources" db=0.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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 08:48:03.205 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [52] 08:48:03.206 [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] 08:48:03.206 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 08:48:03.206 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301335] 08:48:03.206 [debug] QUERY OK source="tasks" db=0.9ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300614, 1301392, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.206 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301334] 08:48:03.208 [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" = ?) [1301335] 08:48:03.208 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:48:03.208 [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" = ?) [1301334] 08:48:03.209 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:48:03.209 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:48:03.209 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:48:03.209 [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 [] 08:48:03.209 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:03.209 [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 [] 08:48:03.210 [debug] QUERY OK source="tasks" db=0.2ms idle=0.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300615, 1301393, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.210 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:03.211 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:48:03.211 [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 [] 08:48:03.211 [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 [] 08:48:03.211 [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 [] 08:48:03.212 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c1/1d/c11dbafb170500bc27fa3667f653befba5775c7ef159047b84b7d0eed6664b7c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:03.212 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:48:03.212 [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 [] 08:48:03.212 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/1a/341ab40051b2d5c9abba4276580447ee360297f5a23eaf033bc125979155ba11.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:03.213 [debug] QUERY OK source="tasks" db=0.1ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300616, 1301394, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.215 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300617, 1301395, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.218 [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" [300618, 1301397, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.220 [debug] QUERY OK source="tasks" db=0.4ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300619, 1301398, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.223 [debug] QUERY OK source="tasks" db=0.3ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300620, 1301399, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.225 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300621, 1301400, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.228 [debug] QUERY OK source="tasks" db=0.3ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300622, 2720968, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.229 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300623, 52, ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z]] 08:48:03.229 [info] {"args":{"id":52},"id":300609,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2042249,"event":"job:stop","queue_time":137572,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:48:03.266 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 962, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", "id" => "onw826NsgWQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=onw826NsgWQ", "playlist_index" => 13, "timestamp" => 1774357289, "title" => "Create Beautiful Websites With Hugo", "upload_date" => "20260324"} 08:48:03.266 [debug] QUERY OK source="sources" db=0.2ms idle=37.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 (?)) [35] 08:48:03.267 [debug] QUERY OK source="sources" db=0.2ms idle=37.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" = ?) [35] 08:48:03.270 [debug] QUERY OK source="media_items" db=2.9ms idle=37.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 13:01:29Z], 35] 08:48:03.271 [debug] QUERY OK source="media_items" db=0.8ms idle=40.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "beea992d-976e-4c1c-8dff-ad729f074458", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, false, false, 35, [], 98, ~U[2026-03-24 13:01:29Z], ~U[2026-04-30 13:48:03Z], ~U[2026-04-30 13:48:03Z], "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, 35, ~U[2026-03-24 13:01:29Z]] 08:48:03.272 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:03.272 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:48:03.272 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2562055] 08:48:03.272 [debug] Current batch of media processed. Will check again in 1000ms 08:48:04.273 [debug] Current batch of media processed. Will check again in 1000ms 08:48:04.812 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/1a/341ab40051b2d5c9abba4276580447ee360297f5a23eaf033bc125979155ba11.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:04.813 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:04.813 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:04.813 [info] {"args":{"id":1301334},"id":300611,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1609072,"event":"job:stop","queue_time":202891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:04.819 [info] {"args":{"id":1301347},"id":300613,"meta":{},"system_time":1777556884819619993,"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"]} 08:48:04.819 [debug] QUERY OK source="media_items" db=0.1ms idle=1547.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" = ?) [1301347] 08:48:04.820 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:04.820 [debug] QUERY OK source="sources" db=0.1ms idle=1547.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" = ?) [52] 08:48:04.820 [debug] QUERY OK source="media_profiles" db=0.2ms idle=635.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] 08:48:04.821 [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 [1301347] 08:48:04.823 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 08:48:04.823 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:48:04.823 [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 [] 08:48:04.823 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:04.823 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:04.824 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:04.824 [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 [] 08:48:04.824 [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 [] 08:48:04.824 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/99/1f99cbc1743ba8e5889041e9d95451a41147fba8cc2d88c1abc844a1f7f481a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:04.930 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c1/1d/c11dbafb170500bc27fa3667f653befba5775c7ef159047b84b7d0eed6664b7c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:04.930 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:04.930 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:04.931 [info] {"args":{"id":1301335},"id":300612,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1726755,"event":"job:stop","queue_time":202891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:04.937 [info] {"args":{"id":1301392},"id":300614,"meta":{},"system_time":1777556884937500942,"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"]} 08:48:04.937 [debug] QUERY OK source="media_items" db=0.2ms idle=113.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" = ?) [1301392] 08:48:04.938 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:04.938 [debug] QUERY OK source="sources" db=0.1ms idle=113.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" = ?) [52] 08:48:04.938 [debug] QUERY OK source="media_profiles" db=0.1ms idle=113.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] 08:48:04.939 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301392] 08:48:04.940 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 08:48:04.940 [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] 08:48:04.940 [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 [] 08:48:04.940 [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 [] 08:48:04.941 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:04.942 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:04.942 [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 [] 08:48:04.942 [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 [] 08:48:04.942 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0b/62/0b62413ae8e5f3a3cfdb5e140078ddf0f5b19f3fc5f4bc68a635ae3857d965c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:05.274 [debug] Current batch of media processed. Will check again in 1000ms 08:48:06.093 [info] {"source":"oban","duration":3372,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:48:06.275 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 935, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", "id" => "NebhEVR44Jc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NebhEVR44Jc", "playlist_index" => 14, "timestamp" => 1774098044, "title" => "Taking Notes With Emacs Org Mode (It's Easy!)", "upload_date" => "20260321"} 08:48:06.275 [debug] QUERY OK source="sources" db=0.2ms idle=293.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 (?)) [35] 08:48:06.275 [debug] QUERY OK source="sources" db=0.1ms idle=294.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" = ?) [35] 08:48:06.278 [debug] QUERY OK source="media_items" db=2.8ms idle=294.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 13:00:44Z], 35] 08:48:06.280 [debug] QUERY OK source="media_items" db=0.7ms idle=185.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "e9d87d5a-27fe-4b32-9b71-70bcc86ff407", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, false, false, 35, [], 98, ~U[2026-03-21 13:00:44Z], ~U[2026-04-30 13:48:06Z], ~U[2026-04-30 13:48:06Z], "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, 35, ~U[2026-03-21 13:00:44Z]] 08:48:06.280 [debug] QUERY OK source="sources" db=0.1ms idle=92.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" = ?) [35] 08:48:06.280 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:48:06.281 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2538287] 08:48:06.281 [debug] Current batch of media processed. Will check again in 1000ms 08:48:06.467 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/99/1f99cbc1743ba8e5889041e9d95451a41147fba8cc2d88c1abc844a1f7f481a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:06.467 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:06.467 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:06.468 [info] {"args":{"id":1301347},"id":300613,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1647715,"event":"job:stop","queue_time":1818895,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:06.474 [info] {"args":{"id":1301393},"id":300615,"meta":{},"system_time":1777556886474704693,"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"]} 08:48:06.475 [debug] QUERY OK source="media_items" db=0.1ms idle=194.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" = ?) [1301393] 08:48:06.475 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:06.475 [debug] QUERY OK source="sources" db=0.1ms idle=194.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" = ?) [52] 08:48:06.475 [debug] QUERY OK source="media_profiles" db=0.1ms idle=194.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] 08:48:06.476 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301393] 08:48:06.477 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301393] 08:48:06.477 [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] 08:48:06.477 [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 [] 08:48:06.478 [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 [] 08:48:06.478 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:06.479 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:48:06.479 [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 [] 08:48:06.480 [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 [] 08:48:06.480 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/18/ef1866be32ba050c7306fb4013bf5ea23f759ea44cab1a0adeb2565285729d92.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:06.672 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0b/62/0b62413ae8e5f3a3cfdb5e140078ddf0f5b19f3fc5f4bc68a635ae3857d965c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:06.672 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:06.672 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:06.673 [info] {"args":{"id":1301392},"id":300614,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1735163,"event":"job:stop","queue_time":1936944,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:06.679 [info] {"args":{"id":1301394},"id":300616,"meta":{},"system_time":1777556886679560089,"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"]} 08:48:06.679 [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" = ?) [1301394] 08:48:06.680 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:06.680 [debug] QUERY OK source="sources" db=0.2ms idle=200.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" = ?) [52] 08:48:06.680 [debug] QUERY OK source="media_profiles" db=0.1ms idle=200.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] 08:48:06.681 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301394] 08:48:06.684 [debug] QUERY OK source="media_metadata" db=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" = ?) [1301394] 08:48:06.684 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:48:06.684 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:06.684 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:06.685 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:06.685 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:06.686 [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 [] 08:48:06.686 [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 [] 08:48:06.686 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/65/53/6553d4a23a5800edfe2af24b25af25a97f9b90b94063ed0a24678009d783d042.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:07.282 [debug] Current batch of media processed. Will check again in 1000ms 08:48:08.283 [debug] Current batch of media processed. Will check again in 1000ms 08:48:08.491 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/18/ef1866be32ba050c7306fb4013bf5ea23f759ea44cab1a0adeb2565285729d92.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:08.491 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:08.492 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:08.492 [info] {"args":{"id":1301393},"id":300615,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2017334,"event":"job:stop","queue_time":3473908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:08.498 [info] {"args":{"id":1301395},"id":300617,"meta":{},"system_time":1777556888498744269,"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"]} 08:48:08.499 [debug] QUERY OK source="media_items" db=0.1ms idle=517.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" = ?) [1301395] 08:48:08.499 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:08.499 [debug] QUERY OK source="sources" db=0.1ms idle=518.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" = ?) [52] 08:48:08.499 [debug] QUERY OK source="media_profiles" db=0.1ms idle=308.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] 08:48:08.500 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301395] 08:48:08.501 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301395] 08:48:08.501 [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] 08:48:08.502 [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 [] 08:48:08.502 [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 [] 08:48:08.502 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:08.503 [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 [] 08:48:08.503 [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 [] 08:48:08.503 [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 [] 08:48:08.504 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fd/96/fd9614680f0586ec269e589604efe3e6fa0994ffd1b7bfee68231abdb8cf00df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:08.574 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/65/53/6553d4a23a5800edfe2af24b25af25a97f9b90b94063ed0a24678009d783d042.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:08.575 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:08.575 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:08.575 [info] {"args":{"id":1301394},"id":300616,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1895672,"event":"job:stop","queue_time":3678909,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:08.581 [info] {"args":{"id":1301397},"id":300618,"meta":{},"system_time":1777556888581569773,"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"]} 08:48:08.582 [debug] QUERY OK source="media_items" db=0.1ms idle=78.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" = ?) [1301397] 08:48:08.582 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:08.582 [debug] QUERY OK source="sources" db=0.1ms idle=78.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" = ?) [52] 08:48:08.582 [debug] QUERY OK source="media_profiles" db=0.1ms idle=78.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] 08:48:08.583 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 08:48:08.584 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 08:48:08.584 [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] 08:48:08.584 [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 [] 08:48:08.584 [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 [] 08:48:08.584 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:08.586 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:08.586 [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 [] 08:48:08.586 [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 [] 08:48:08.586 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/4f/394f6499470e6f64fb27ed8d5ea3cbe256872d401b94294cbe2a153d389404e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:09.284 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 645, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", "id" => "CPsMqjjsyhI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CPsMqjjsyhI", "playlist_index" => 15, "timestamp" => 1773838638, "title" => "CachyOS Dethrones Arch As Top Gaming Distro", "upload_date" => "20260318"} 08:48:09.284 [debug] QUERY OK source="sources" db=0.2ms idle=699.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 (?)) [35] 08:48:09.284 [debug] QUERY OK source="sources" db=0.1ms idle=698.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" = ?) [35] 08:48:09.287 [debug] QUERY OK source="media_items" db=2.7ms idle=698.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 12:57:18Z], 35] 08:48:09.289 [debug] QUERY OK source="media_items" db=0.8ms idle=701.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "700a4494-ad6e-4d60-84cc-5865352c6a79", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, false, false, 35, [], 98, ~U[2026-03-18 12:57:18Z], ~U[2026-04-30 13:48:09Z], ~U[2026-04-30 13:48:09Z], "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, 35, ~U[2026-03-18 12:57:18Z]] 08:48:09.289 [debug] QUERY OK source="sources" db=0.1ms idle=97.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" = ?) [35] 08:48:09.289 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 08:48:09.290 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2515554] 08:48:09.290 [debug] Current batch of media processed. Will check again in 1000ms 08:48:10.239 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fd/96/fd9614680f0586ec269e589604efe3e6fa0994ffd1b7bfee68231abdb8cf00df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:10.239 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:10.239 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:10.239 [info] {"args":{"id":1301395},"id":300617,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1740801,"event":"job:stop","queue_time":5497969,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:10.246 [info] {"args":{"id":1301398},"id":300619,"meta":{},"system_time":1777556890246717178,"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"]} 08:48:10.247 [debug] QUERY OK source="media_items" db=0.1ms idle=957.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" = ?) [1301398] 08:48:10.247 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:10.247 [debug] QUERY OK source="sources" db=0.2ms idle=957.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" = ?) [52] 08:48:10.247 [debug] QUERY OK source="media_profiles" db=0.1ms idle=54.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] 08:48:10.248 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301398] 08:48:10.249 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301398] 08:48:10.249 [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] 08:48:10.249 [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 [] 08:48:10.249 [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 [] 08:48:10.250 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:10.251 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:10.251 [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 [] 08:48:10.251 [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 [] 08:48:10.251 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/30/a5/30a5762d33ed1d957f2fd73c4a7d3a7b5ae95ba0acacf78488fff48d1188e4fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:10.291 [debug] Current batch of media processed. Will check again in 1000ms 08:48:10.800 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/4f/394f6499470e6f64fb27ed8d5ea3cbe256872d401b94294cbe2a153d389404e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:10.800 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:10.800 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:10.801 [info] {"args":{"id":1301397},"id":300618,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2219211,"event":"job:stop","queue_time":5580897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:10.807 [info] {"args":{"id":1301399},"id":300620,"meta":{},"system_time":1777556890807460787,"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"]} 08:48:10.807 [debug] QUERY OK source="media_items" db=0.1ms idle=556.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" = ?) [1301399] 08:48:10.807 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:10.808 [debug] QUERY OK source="sources" db=0.1ms idle=556.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" = ?) [52] 08:48:10.808 [debug] QUERY OK source="media_profiles" db=0.1ms idle=556.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] 08:48:10.808 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301399] 08:48:10.810 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301399] 08:48:10.810 [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] 08:48:10.811 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:10.811 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:10.811 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:10.811 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:10.811 [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 [] 08:48:10.812 [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 [] 08:48:10.812 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b4/3b/b43bedee60cd85df1681922c5702c77606a0b6b2ca8146beecbe3eb117cce13a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:11.292 [debug] Current batch of media processed. Will check again in 1000ms 08:48:12.220 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/30/a5/30a5762d33ed1d957f2fd73c4a7d3a7b5ae95ba0acacf78488fff48d1188e4fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:12.220 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:12.220 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:12.220 [info] {"args":{"id":1301398},"id":300619,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1973568,"event":"job:stop","queue_time":7245929,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:12.226 [info] {"args":{"id":1301400},"id":300621,"meta":{},"system_time":1777556892226589280,"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"]} 08:48:12.226 [debug] QUERY OK source="media_items" db=0.1ms idle=245.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" = ?) [1301400] 08:48:12.227 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:12.227 [debug] QUERY OK source="sources" db=0.2ms idle=246.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" = ?) [52] 08:48:12.227 [debug] QUERY OK source="media_profiles" db=0.1ms idle=30.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] 08:48:12.228 [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 [1301400] 08:48:12.228 [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" = ?) [1301400] 08:48:12.228 [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] 08:48:12.228 [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 [] 08:48:12.229 [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 [] 08:48:12.229 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:12.230 [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 [] 08:48:12.230 [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 [] 08:48:12.230 [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 [] 08:48:12.230 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/31/e8/31e86ed7ace98f70037372002bdf2945e2238e5c5c23160a6e2204c52af95e34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:12.292 [debug] Current batch of media processed. Will check again in 1000ms 08:48:12.442 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b4/3b/b43bedee60cd85df1681922c5702c77606a0b6b2ca8146beecbe3eb117cce13a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:12.442 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:12.442 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:12.443 [info] {"args":{"id":1301399},"id":300620,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1635530,"event":"job:stop","queue_time":7806891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:12.449 [info] {"args":{"id":2720968},"id":300622,"meta":{},"system_time":1777556892449484605,"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"]} 08:48:12.449 [debug] QUERY OK source="media_items" db=0.1ms idle=219.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" = ?) [2720968] 08:48:12.449 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:48:12.450 [debug] QUERY OK source="sources" db=0.1ms idle=219.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" = ?) [52] 08:48:12.450 [debug] QUERY OK source="media_profiles" db=0.1ms idle=219.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] 08:48:12.450 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 08:48:12.452 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2720968] 08:48:12.452 [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] 08:48:12.452 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:48:12.452 [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 [] 08:48:12.453 [debug] Running yt-dlp command for action: get_downloadable_status 08:48:12.453 [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 [] 08:48:12.453 [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 [] 08:48:12.453 [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 [] 08:48:12.453 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/6c/796c10cae896fd6d5082c8a1227437b2f55f5ae9d9658f67ad4ad9293f1aa616.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:13.294 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 300, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", "id" => "Ug5u1OT1sxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "playlist_index" => 16, "timestamp" => 1773664301, "title" => "'tail' - print the ending of files - Video Man Pages", "upload_date" => "20260316"} 08:48:13.294 [debug] QUERY OK source="sources" db=0.1ms idle=841.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 (?)) [35] 08:48:13.295 [debug] QUERY OK source="sources" db=0.1ms idle=841.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" = ?) [35] 08:48:13.298 [debug] QUERY OK source="media_items" db=2.7ms idle=841.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 12:31:41Z], 35] 08:48:13.299 [debug] QUERY OK source="media_items" db=0.9ms idle=844.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "1dcbd82b-829e-4576-bd2c-db6788f4d535", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-16 12:31:41Z], ~U[2026-04-30 13:48:13Z], ~U[2026-04-30 13:48:13Z], "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, 35, ~U[2026-03-16 12:31:41Z]] 08:48:13.299 [debug] QUERY OK source="sources" db=0.2ms idle=102.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" = ?) [35] 08:48:13.300 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:48:13.300 [debug] QUERY OK source="media_items" db=0.2ms 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 [2499851] 08:48:13.300 [debug] Current batch of media processed. Will check again in 1000ms 08:48:13.910 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/31/e8/31e86ed7ace98f70037372002bdf2945e2238e5c5c23160a6e2204c52af95e34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:13.910 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:13.910 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:13.911 [info] {"args":{"id":1301400},"id":300621,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1683924,"event":"job:stop","queue_time":9225941,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:14.110 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/6c/796c10cae896fd6d5082c8a1227437b2f55f5ae9d9658f67ad4ad9293f1aa616.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:48:14.110 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:14.110 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:48:14.110 [info] {"args":{"id":2720968},"id":300622,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1660855,"event":"job:stop","queue_time":9448908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:48:14.300 [debug] Current batch of media processed. Will check again in 1000ms 08:48:15.303 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 240, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", "id" => "2bI-HlSG3_I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2bI-HlSG3_I", "playlist_index" => 17, "timestamp" => 1773579605, "title" => "'head'- print the beginning of files - Video Man Pages", "upload_date" => "20260315"} 08:48:15.303 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1185.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 (?)) [35] 08:48:15.304 [debug] QUERY OK source="sources" db=0.1ms idle=1105.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" = ?) [35] 08:48:15.307 [debug] QUERY OK source="media_items" db=2.8ms idle=322.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-15 13:00:05Z], 35] 08:48:15.308 [debug] QUERY OK source="media_items" db=0.9ms idle=325.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "b3608e4e-3642-45be-b4af-765aae9eb4fb", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-15 13:00:05Z], ~U[2026-04-30 13:48:15Z], ~U[2026-04-30 13:48:15Z], "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, 35, ~U[2026-03-15 13:00:05Z]] 08:48:15.309 [debug] QUERY OK source="sources" db=0.2ms idle=109.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" = ?) [35] 08:48:15.309 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:48:15.309 [debug] QUERY OK source="media_items" db=0.1ms 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 [2492666] 08:48:15.309 [debug] Current batch of media processed. Will check again in 1000ms 08:48:16.309 [debug] Current batch of media processed. Will check again in 1000ms 08:48:17.311 [debug] Current batch of media processed. Will check again in 1000ms 08:48:18.312 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1555, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", "id" => "1STCtfTNKvk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1STCtfTNKvk", "playlist_index" => 18, "timestamp" => 1773320404, "title" => "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "upload_date" => "20260312"} 08:48:18.312 [debug] QUERY OK source="sources" db=0.2ms idle=1331.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 (?)) [35] 08:48:18.313 [debug] QUERY OK source="sources" db=0.1ms idle=1331.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" = ?) [35] 08:48:18.316 [debug] QUERY OK source="media_items" db=2.7ms idle=1332.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 13:00:04Z], 35] 08:48:18.317 [debug] QUERY OK source="media_items" db=1.2ms idle=1113.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "b2602f22-971c-42e0-8db5-051064ef304b", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-12 13:00:04Z], ~U[2026-04-30 13:48:18Z], ~U[2026-04-30 13:48:18Z], "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, 35, ~U[2026-03-12 13:00:04Z]] 08:48:18.318 [debug] QUERY OK source="sources" db=0.3ms idle=113.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" = ?) [35] 08:48:18.318 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:48:18.318 [debug] QUERY OK source="media_items" db=0.2ms 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 [2468669] 08:48:18.318 [debug] Current batch of media processed. Will check again in 1000ms 08:48:19.319 [debug] Current batch of media processed. Will check again in 1000ms 08:48:20.321 [debug] Current batch of media processed. Will check again in 1000ms 08:48:21.322 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 506, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", "id" => "58jkfpJ3j0E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=58jkfpJ3j0E", "playlist_index" => 19, "timestamp" => 1773060493, "title" => "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "upload_date" => "20260309"} 08:48:21.322 [debug] QUERY OK source="sources" db=0.3ms idle=1341.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 (?)) [35] 08:48:21.323 [debug] QUERY OK source="sources" db=0.2ms idle=1342.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" = ?) [35] 08:48:21.326 [debug] QUERY OK source="media_items" db=2.8ms idle=1342.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-09 12:48:13Z], 35] 08:48:21.327 [debug] QUERY OK source="media_items" db=0.8ms idle=1118.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "0b67c61f-bb9f-45ca-9670-30688cf19b46", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-09 12:48:13Z], ~U[2026-04-30 13:48:21Z], ~U[2026-04-30 13:48:21Z], "Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, 35, ~U[2026-03-09 12:48:13Z]] 08:48:21.327 [debug] QUERY OK source="sources" db=0.1ms idle=118.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" = ?) [35] 08:48:21.328 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 08:48:21.328 [debug] QUERY OK source="media_items" db=0.2ms 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 [2445171] 08:48:21.328 [debug] Current batch of media processed. Will check again in 1000ms 08:48:22.329 [debug] Current batch of media processed. Will check again in 1000ms 08:48:23.330 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I see nothing but mediocrity in the world. Mediocrity is in our music, movies, sports, culture, software, etc. And it frustrates the hell out of me.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 652, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030700_Mediocrity Is Destroying Everything...Including Our Software.mp4", "id" => "fjI0IRsjizA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fjI0IRsjizA", "playlist_index" => 20, "timestamp" => 1772892063, "title" => "Mediocrity Is Destroying Everything...Including Our Software", "upload_date" => "20260307"} 08:48:23.330 [debug] QUERY OK source="sources" db=0.1ms idle=349.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 (?)) [35] 08:48:23.330 [debug] QUERY OK source="sources" db=0.1ms idle=349.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" = ?) [35] 08:48:23.333 [debug] QUERY OK source="media_items" db=2.6ms idle=349.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-07 14:01:03Z], 35] 08:48:23.335 [debug] QUERY OK source="media_items" db=0.8ms idle=352.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I see nothing but mediocrity in the world. Mediocrity is in our music, movies, sports, culture, software, etc. And it frustrates the hell out of me.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Mediocrity Is Destroying Everything...Including Our Software", "0b94e152-95ae-4e33-ac15-f91c0fa7a8f8", "fjI0IRsjizA", 652, false, "https://www.youtube.com/watch?v=fjI0IRsjizA", 20, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030700_Mediocrity Is Destroying Everything...Including Our Software.mp4", false, false, false, 35, [], 98, ~U[2026-03-07 14:01:03Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "I see nothing but mediocrity in the world. Mediocrity is in our music, movies, sports, culture, software, etc. And it frustrates the hell out of me.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Mediocrity Is Destroying Everything...Including Our Software", "fjI0IRsjizA", 652, false, "https://www.youtube.com/watch?v=fjI0IRsjizA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030700_Mediocrity Is Destroying Everything...Including Our Software.mp4", false, 35, ~U[2026-03-07 14:01:03Z]] 08:48:23.335 [debug] QUERY OK source="sources" db=0.2ms idle=122.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" = ?) [35] 08:48:23.335 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 08:48:23.336 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2429967] 08:48:23.336 [debug] Current batch of media processed. Will check again in 1000ms 08:48:23.369 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/84/e0/84e080621725e9d09290219879df74e38783b2edfbb1bf41d9c8547711d5a9ba.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d7/08/d708c0f51f7300226246eca08eac5bf0a2ca42ce900178c43321f4d68f3c8825.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 08:48:23.370 [debug] Gracefully stopping file follower 08:48:23.370 [debug] QUERY OK source="sources" db=0.5ms idle=36.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 (?)) [35] 08:48:23.371 [debug] QUERY OK source="sources" db=0.0ms idle=36.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" = ?) [35] 08:48:23.373 [debug] QUERY OK source="media_items" db=2.5ms idle=35.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 13:01:41Z], 35] 08:48:23.374 [debug] QUERY OK source="media_items" db=0.7ms idle=38.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "d2dbabbd-9cd1-4c62-b706-47d7fe1441b3", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, false, false, 35, [], 98, ~U[2026-04-30 13:01:41Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, 35, ~U[2026-04-30 13:01:41Z]] 08:48:23.375 [debug] QUERY OK source="sources" db=0.1ms idle=38.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" = ?) [35] 08:48:23.377 [debug] QUERY OK source="media_items" db=2.5ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 13:31:26Z], 35] 08:48:23.378 [debug] QUERY OK source="media_items" db=0.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "44acbdd4-acf5-4a67-bd1a-c6591b7c1bdd", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, false, false, 35, [], 98, ~U[2026-04-27 13:31:26Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, 35, ~U[2026-04-27 13:31:26Z]] 08:48:23.379 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.381 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 13:01:34Z], 35] 08:48:23.382 [debug] QUERY OK source="media_items" db=0.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "e7f23d4c-e7f3-4a64-b492-bdb3a22ea2e9", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, false, false, 35, [], 98, ~U[2026-04-24 13:01:34Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, 35, ~U[2026-04-24 13:01:34Z]] 08:48:23.383 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.386 [debug] QUERY OK source="media_items" db=2.5ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 11:14:59Z], 35] 08:48:23.388 [debug] QUERY OK source="media_items" db=2.4ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "613f528d-e058-4762-8e53-d0afa24134fa", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, false, false, 35, [], 98, ~U[2026-04-21 11:14:59Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, 35, ~U[2026-04-21 11:14:59Z]] 08:48:23.389 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.392 [debug] QUERY OK source="media_items" db=2.5ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 13:01:39Z], 35] 08:48:23.393 [debug] QUERY OK source="media_items" db=0.8ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "9bad3629-c381-4e1d-ba2e-80e759864ee0", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, false, false, 35, [], 98, ~U[2026-04-18 13:01:39Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, 35, ~U[2026-04-18 13:01:39Z]] 08:48:23.393 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.396 [debug] QUERY OK source="media_items" db=2.4ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:18Z], 35] 08:48:23.397 [debug] QUERY OK source="media_items" db=0.8ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "e0501f9f-cc9b-47bc-9790-d0938c65ed1d", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, false, false, 35, [], 98, ~U[2026-04-12 13:00:18Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, 35, ~U[2026-04-12 13:00:18Z]] 08:48:23.398 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.400 [debug] QUERY OK source="media_items" db=2.3ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:01:45Z], 35] 08:48:23.401 [debug] QUERY OK source="media_items" db=0.8ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "06f8ea1a-ed67-4b24-a239-b4ee3089499e", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, false, false, 35, [], 98, ~U[2026-04-09 13:01:45Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, 35, ~U[2026-04-09 13:01:45Z]] 08:48:23.401 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.404 [debug] QUERY OK source="media_items" db=2.2ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 13:00:27Z], 35] 08:48:23.405 [debug] QUERY OK source="media_items" db=0.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "ca59a762-f67e-4a29-b0d6-696ee08c70d0", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, false, false, 35, [], 98, ~U[2026-04-06 13:00:27Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, 35, ~U[2026-04-06 13:00:27Z]] 08:48:23.405 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.408 [debug] QUERY OK source="media_items" db=2.2ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 13:01:02Z], 35] 08:48:23.410 [debug] QUERY OK source="media_items" db=1.6ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "a52aebf9-da6c-4075-9195-249fdc8fe2a8", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-04-03 13:01:02Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, 35, ~U[2026-04-03 13:01:02Z]] 08:48:23.410 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.413 [debug] QUERY OK source="media_items" db=2.2ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 15:15:09Z], 35] 08:48:23.430 [debug] QUERY OK source="media_items" db=17.1ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "a0152082-49d3-4e3b-afa3-9881a48d80b8", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, false, false, 35, [], 97, ~U[2026-04-02 15:15:09Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, 35, ~U[2026-04-02 15:15:09Z]] 08:48:23.431 [debug] QUERY OK source="sources" db=0.7ms idle=22.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" = ?) [35] 08:48:23.434 [debug] QUERY OK source="media_items" db=2.6ms idle=21.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 13:00:06Z], 35] 08:48:23.439 [debug] QUERY OK source="media_items" db=4.3ms idle=24.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "50416014-a729-4f09-b87f-9a040b81c1bf", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, false, false, 35, [], 98, ~U[2026-03-30 13:00:06Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, 35, ~U[2026-03-30 13:00:06Z]] 08:48:23.440 [debug] QUERY OK source="sources" db=0.4ms idle=26.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" = ?) [35] 08:48:23.442 [debug] QUERY OK source="media_items" db=2.5ms idle=9.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:45:49Z], 35] 08:48:23.443 [debug] QUERY OK source="media_items" db=0.8ms idle=11.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "2c2dd8cf-58f2-4c54-b56b-c1bc096aa309", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, false, false, 35, [], 98, ~U[2026-03-27 12:45:49Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, 35, ~U[2026-03-27 12:45:49Z]] 08:48:23.444 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.447 [debug] QUERY OK source="media_items" db=2.5ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 13:01:29Z], 35] 08:48:23.448 [debug] QUERY OK source="media_items" db=0.8ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "4b403689-007c-473d-9541-15e39b7fcf87", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, false, false, 35, [], 98, ~U[2026-03-24 13:01:29Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, 35, ~U[2026-03-24 13:01:29Z]] 08:48:23.448 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.451 [debug] QUERY OK source="media_items" db=2.5ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 13:00:44Z], 35] 08:48:23.452 [debug] QUERY OK source="media_items" db=0.8ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "7e3d514c-186f-42a2-b1e2-db9cbc39d10e", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, false, false, 35, [], 98, ~U[2026-03-21 13:00:44Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, 35, ~U[2026-03-21 13:00:44Z]] 08:48:23.453 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.456 [debug] QUERY OK source="media_items" db=2.5ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 12:57:18Z], 35] 08:48:23.457 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "ad73be7a-ef66-42ac-80d8-c0ae3ee78487", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, false, false, 35, [], 98, ~U[2026-03-18 12:57:18Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, 35, ~U[2026-03-18 12:57:18Z]] 08:48:23.458 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [35] 08:48:23.461 [debug] QUERY OK source="media_items" db=2.6ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 12:31:41Z], 35] 08:48:23.462 [debug] QUERY OK source="media_items" db=0.9ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "bf5c580e-228e-4b3f-bb20-908f9f46046a", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-16 12:31:41Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, 35, ~U[2026-03-16 12:31:41Z]] 08:48:23.462 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 08:48:23.465 [debug] QUERY OK source="media_items" db=2.5ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-15 13:00:05Z], 35] 08:48:23.466 [debug] QUERY OK source="media_items" db=0.8ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "5cdecf1e-e356-4b70-9c9d-539775b76087", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-15 13:00:05Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, 35, ~U[2026-03-15 13:00:05Z]] 08:48:23.467 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.470 [debug] QUERY OK source="media_items" db=2.5ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 13:00:04Z], 35] 08:48:23.471 [debug] QUERY OK source="media_items" db=0.8ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "2d808d6f-ed1d-4447-a481-0df363574b00", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-12 13:00:04Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, 35, ~U[2026-03-12 13:00:04Z]] 08:48:23.471 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 08:48:23.474 [debug] QUERY OK source="media_items" db=2.4ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-09 12:48:13Z], 35] 08:48:23.475 [debug] QUERY OK source="media_items" db=0.8ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "9a623016-3b69-4fb6-90e3-7fdb84457726", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-09 12:48:13Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, 35, ~U[2026-03-09 12:48:13Z]] 08:48:23.476 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 08:48:23.478 [debug] QUERY OK source="media_items" db=2.5ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-07 14:01:03Z], 35] 08:48:23.480 [debug] QUERY OK source="media_items" db=0.8ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I see nothing but mediocrity in the world. Mediocrity is in our music, movies, sports, culture, software, etc. And it frustrates the hell out of me.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Mediocrity Is Destroying Everything...Including Our Software", "8883ac21-33f1-4fb8-bb33-f63a15a41b03", "fjI0IRsjizA", 652, false, "https://www.youtube.com/watch?v=fjI0IRsjizA", 20, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030700_Mediocrity Is Destroying Everything...Including Our Software.mp4", false, false, false, 35, [], 98, ~U[2026-03-07 14:01:03Z], ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], "I see nothing but mediocrity in the world. Mediocrity is in our music, movies, sports, culture, software, etc. And it frustrates the hell out of me.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Mediocrity Is Destroying Everything...Including Our Software", "fjI0IRsjizA", 652, false, "https://www.youtube.com/watch?v=fjI0IRsjizA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030700_Mediocrity Is Destroying Everything...Including Our Software.mp4", false, 35, ~U[2026-03-07 14:01:03Z]] 08:48:23.480 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z], 35] 08:48:23.483 [debug] QUERY OK source="media_items" db=2.5ms 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 ((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")))) [35] 08:48:23.486 [debug] QUERY OK source="media_items" db=2.7ms idle=7.3ms 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")))) [35] 08:48:23.486 [debug] QUERY OK source="media_items" db=0.5ms idle=7.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 08:48:23.486 [info] No notification servers provided for source 35 08:48:23.488 [debug] QUERY OK source="tasks" db=0.3ms idle=4.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300624, 35, ~U[2026-04-30 13:48:23Z], ~U[2026-04-30 13:48:23Z]] 08:48:23.488 [info] {"args":{"id":35},"id":300524,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":70372551,"event":"job:stop","queue_time":332261,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:48:36.097 [info] {"source":"oban","duration":3725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:00.826 [info] {"source":"oban","duration":286,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:49:06.101 [info] {"source":"oban","duration":3518,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:36.105 [info] {"source":"oban","duration":3890,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:55.730 [info] GET /sources/55/media/1797426/force_download 08:49:55.730 [debug] QUERY OK source="settings" db=0.1ms idle=1749.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 [] 08:49:55.730 [debug] QUERY OK source="settings" db=0.0ms idle=1749.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 [] 08:49:55.730 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:49:55.730 [error] #PID<0.189746.0> running PinchflatWeb.Endpoint (connection #PID<0.189745.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/1797426/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/55/media/1797426/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189745.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797426/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189746.0>, params: %{}, path_info: ["sources", "55", "media", "1797426", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/1797426/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmq3KARRpY4YsAUYnB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189745.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797426/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/1797426/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189745.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797426/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189746.0>, params: %{}, path_info: ["sources", "55", "media", "1797426", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:50:00.827 [info] {"source":"oban","duration":141,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:50:06.109 [info] {"source":"oban","duration":2381,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:36.114 [info] {"source":"oban","duration":3633,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:46.659 [info] GET /sources/57/media/2161765/force_download 08:50:46.659 [debug] QUERY OK source="settings" db=0.1ms idle=678.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 [] 08:50:46.659 [debug] QUERY OK source="settings" db=0.0ms idle=678.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:50:46.659 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:50:46.660 [error] #PID<0.189754.0> running PinchflatWeb.Endpoint (connection #PID<0.189753.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2161765/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/57/media/2161765/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161765/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34700}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189754.0>, params: %{}, path_info: ["sources", "57", "media", "2161765", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2161765/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmt04be68v8qwAUYqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161765/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34700}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2161765/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161765/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34700}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189754.0>, params: %{}, path_info: ["sources", "57", "media", "2161765", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:51:00.828 [info] {"source":"oban","duration":150,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:51:06.117 [info] {"source":"oban","duration":2751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:17.107 [info] GET /sources/57/media/2161760/force_download 08:51:17.107 [debug] QUERY OK source="settings" db=0.1ms idle=1125.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:51:17.107 [debug] QUERY OK source="settings" db=0.0ms idle=1126.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:51:17.107 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:51:17.108 [error] #PID<0.189758.0> running PinchflatWeb.Endpoint (connection #PID<0.189757.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2161760/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/57/media/2161760/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161760/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 57620}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189758.0>, params: %{}, path_info: ["sources", "57", "media", "2161760", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2161760/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsmvmTzXLuXHNEAUYrB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161760/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 57620}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2161760/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2161760/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 57620}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189758.0>, params: %{}, path_info: ["sources", "57", "media", "2161760", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:51:29.270 [info] GET /sources/55/media/1797427/edit 08:51:29.270 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1797427", "source_id" => "55"} Pipelines: [:browser] 08:51:29.271 [debug] QUERY OK source="media_items" db=0.2ms idle=1289.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" = ?) [1797427] 08:51:29.271 [debug] QUERY OK source="settings" db=0.1ms idle=1289.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:51:29.271 [debug] QUERY OK source="settings" db=0.0ms idle=823.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:51:29.272 [debug] QUERY OK source="settings" db=0.0ms idle=290.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:51:29.272 [info] Sent 200 in 2ms 08:51:36.122 [info] {"source":"oban","duration":2953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:00.829 [info] {"source":"oban","duration":187,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:52:06.126 [info] {"source":"oban","duration":3023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:29.820 [info] GET /sources/57/media/2161760 08:52:29.820 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161760", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:52:29.820 [debug] QUERY OK source="media_items" db=0.1ms idle=1839.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" = ?) [2161760] 08:52:29.821 [debug] QUERY OK source="tasks" db=0.1ms idle=1839.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" [2161760] 08:52:29.821 [debug] QUERY OK source="sources" db=0.2ms idle=1280.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" = ?) [57] 08:52:29.821 [debug] QUERY OK source="settings" db=0.1ms idle=840.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 [] 08:52:29.821 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:52:29.821 [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 [] 08:52:29.822 [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] 08:52:29.823 [info] Sent 200 in 2ms 08:52:36.129 [info] {"source":"oban","duration":2494,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:52.026 [info] GET /sources/55/media/1797426 08:52:52.026 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797426", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 08:52:52.026 [debug] QUERY OK source="media_items" db=0.2ms idle=1045.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" = ?) [1797426] 08:52:52.027 [debug] QUERY OK source="tasks" db=0.0ms idle=1045.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" [1797426] 08:52:52.027 [debug] QUERY OK source="sources" db=0.1ms idle=1045.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" = ?) [55] 08:52:52.027 [debug] QUERY OK source="settings" db=0.0ms idle=454.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 [] 08:52:52.027 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:52:52.028 [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 [] 08:52:52.028 [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] 08:52:52.029 [info] Sent 200 in 2ms 08:53:00.830 [info] {"source":"oban","duration":147,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:53:06.132 [info] {"source":"oban","duration":2677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:08.742 [info] GET /sources/55/media/1797427 08:53:08.742 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797427", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 08:53:08.742 [debug] QUERY OK source="media_items" db=0.1ms idle=761.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" = ?) [1797427] 08:53:08.743 [debug] QUERY OK source="tasks" db=0.1ms idle=762.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" [1797427] 08:53:08.743 [debug] QUERY OK source="sources" db=0.2ms idle=762.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" = ?) [55] 08:53:08.743 [debug] QUERY OK source="settings" db=0.0ms idle=762.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:53:08.743 [debug] QUERY OK source="settings" db=0.0ms idle=144.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 [] 08:53:08.744 [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 [] 08:53:08.744 [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] 08:53:08.745 [info] Sent 200 in 3ms 08:53:12.645 [info] GET /sources/57/media/2161765 08:53:12.645 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161765", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 08:53:12.646 [debug] QUERY OK source="media_items" db=0.1ms idle=664.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" = ?) [2161765] 08:53:12.646 [debug] QUERY OK source="tasks" db=0.1ms idle=665.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" [2161765] 08:53:12.646 [debug] QUERY OK source="sources" db=0.2ms idle=665.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" = ?) [57] 08:53:12.646 [debug] QUERY OK source="settings" db=0.0ms idle=665.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:53:12.647 [debug] QUERY OK source="settings" db=0.0ms idle=39.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:53:12.647 [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 [] 08:53:12.647 [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] 08:53:12.648 [info] Sent 200 in 3ms 08:53:36.136 [info] {"source":"oban","duration":3602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:57.542 [info] GET /sources/55/media/1797427/force_download 08:53:57.543 [debug] QUERY OK source="settings" db=0.1ms idle=1561.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 [] 08:53:57.543 [debug] QUERY OK source="settings" db=0.0ms idle=1561.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:53:57.543 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:53:57.543 [error] #PID<0.189795.0> running PinchflatWeb.Endpoint (connection #PID<0.189794.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/1797427/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/55/media/1797427/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189794.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797427/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46514}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189795.0>, params: %{}, path_info: ["sources", "55", "media", "1797427", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/1797427/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsm47-nIJgp5sQAUYwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189794.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797427/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46514}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/1797427/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189794.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/1797427/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46514}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189795.0>, params: %{}, path_info: ["sources", "55", "media", "1797427", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:54:00.831 [info] {"source":"oban","duration":172,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:54:06.140 [info] {"source":"oban","duration":3139,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:54:14.712 [info] GET /sources/45/media/1716490/force_download 08:54:14.713 [debug] QUERY OK source="settings" db=0.1ms idle=732.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:54:14.713 [debug] QUERY OK source="settings" db=0.1ms idle=732.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 [] 08:54:14.713 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:54:14.713 [error] #PID<0.189799.0> running PinchflatWeb.Endpoint (connection #PID<0.189798.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/1716490/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/45/media/1716490/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189798.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1716490/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49912}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189799.0>, params: %{}, path_info: ["sources", "45", "media", "1716490", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/1716490/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsm578VkTA4p-AAR62C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189798.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1716490/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49912}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/1716490/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189798.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1716490/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 49912}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.189799.0>, params: %{}, path_info: ["sources", "45", "media", "1716490", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 08:54:30.019 [info] GET /sources/57/media/2161760/edit 08:54:30.019 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161760", "source_id" => "57"} Pipelines: [:browser] 08:54:30.019 [debug] QUERY OK source="media_items" db=0.2ms idle=294.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" = ?) [2161760] 08:54:30.020 [debug] QUERY OK source="settings" db=0.1ms idle=38.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:54:30.020 [debug] QUERY OK source="settings" db=0.0ms idle=39.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:54:30.020 [debug] QUERY OK source="settings" db=0.0ms idle=39.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 [] 08:54:30.021 [info] Sent 200 in 1ms 08:54:36.143 [info] {"source":"oban","duration":2314,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:00.832 [info] {"source":"oban","duration":167,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:55:06.146 [info] {"source":"oban","duration":3036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:21.591 [info] GET /sources/45/media/1716490 08:55:21.591 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1716490", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 08:55:21.591 [debug] QUERY OK source="media_items" db=0.1ms idle=1610.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" = ?) [1716490] 08:55:21.591 [debug] QUERY OK source="tasks" db=0.0ms idle=1610.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" [1716490] 08:55:21.591 [debug] QUERY OK source="sources" db=0.1ms idle=1610.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" = ?) [45] 08:55:21.592 [debug] QUERY OK source="settings" db=0.0ms idle=1610.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:55:21.592 [debug] QUERY OK source="settings" db=0.0ms idle=792.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:55:21.592 [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 [] 08:55:21.593 [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] 08:55:21.593 [info] Sent 200 in 2ms 08:55:36.150 [info] {"source":"oban","duration":2701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:00.833 [info] {"source":"oban","duration":211,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:56:06.153 [info] {"source":"oban","duration":2856,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:36.156 [info] {"source":"oban","duration":2880,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:59.329 [info] GET /sources/55/media/1797426/edit 08:56:59.329 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1797426", "source_id" => "55"} Pipelines: [:browser] 08:56:59.330 [debug] QUERY OK source="media_items" db=0.1ms idle=1348.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" = ?) [1797426] 08:56:59.330 [debug] QUERY OK source="settings" db=0.0ms idle=1349.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 [] 08:56:59.330 [debug] QUERY OK source="settings" db=0.0ms idle=1349.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:56:59.330 [debug] QUERY OK source="settings" db=0.0ms idle=1349.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:56:59.331 [info] Sent 200 in 1ms 08:57:00.834 [info] {"source":"oban","duration":161,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:57:06.159 [info] {"source":"oban","duration":2389,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:57:36.162 [info] {"source":"oban","duration":2523,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:00.835 [info] {"source":"oban","duration":384,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:58:04.056 [info] {"args":{"id":52},"id":300623,"meta":{},"system_time":1777557484056571545,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:58:04.057 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [52] 08:58:04.057 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:58:04.058 [debug] QUERY OK source="media_profiles" db=0.3ms idle=76.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] 08:58:04.058 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:58:04.058 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 08:58:04.327 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:58:04.328 [debug] QUERY OK source="media_items" db=0.4ms idle=271.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 08:58:04.329 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:58:04.329 [debug] QUERY OK source="settings" db=0.0ms idle=271.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 [] 08:58:04.329 [debug] Running yt-dlp command for action: get_media_attributes 08:58:04.336 [debug] QUERY OK source="settings" db=0.1ms idle=278.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:04.337 [debug] QUERY OK source="settings" db=0.1ms idle=278.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 [] 08:58:04.337 [debug] QUERY OK source="settings" db=0.1ms idle=8.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:04.337 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/4b/ca/4bcacc6360af62fae6a3b182253fd15eb49c493eebea6ee409eca9cd28138915.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:06.166 [info] {"source":"oban","duration":3969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:06.415 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/4b/ca/4bcacc6360af62fae6a3b182253fd15eb49c493eebea6ee409eca9cd28138915.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 08:58:06.415 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 08:58:06.416 [debug] QUERY OK source="media_items" db=0.6ms idle=434.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 ((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")))) [52] 08:58:06.418 [debug] QUERY OK source="tasks" db=0.2ms idle=367.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300625, 1301334, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.421 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300626, 1301335, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.423 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300627, 1301347, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.425 [info] {"args":{"id":1301335},"id":300626,"meta":{},"system_time":1777557486425107913,"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"]} 08:58:06.425 [info] {"args":{"id":1301334},"id":300625,"meta":{},"system_time":1777557486425056874,"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"]} 08:58:06.425 [debug] QUERY OK source="media_items" db=0.4ms 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 WHERE (m0."id" = ?) [1301334] 08:58:06.425 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:06.426 [debug] QUERY OK source="media_items" db=0.7ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 08:58:06.426 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:06.426 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [52] 08:58:06.426 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 08:58:06.426 [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] 08:58:06.427 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 08:58:06.427 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301334] 08:58:06.427 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301335] 08:58:06.428 [debug] QUERY OK source="tasks" db=0.2ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300628, 1301392, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.429 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301334] 08:58:06.429 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:58:06.430 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301335] 08:58:06.430 [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 [] 08:58:06.430 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 08:58:06.430 [debug] QUERY OK source="settings" db=0.3ms 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 [] 08:58:06.431 [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 [] 08:58:06.431 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:06.431 [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 [] 08:58:06.431 [debug] QUERY OK source="tasks" db=0.3ms idle=0.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300629, 1301393, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.432 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:06.433 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:58:06.433 [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 [] 08:58:06.433 [debug] QUERY OK source="settings" db=0.2ms 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 [] 08:58:06.433 [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 [] 08:58:06.434 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/dd/8bdddec08a954dc4db6f6b69bff6641cff0d1c4e203a11c4cdb4cc5ecaee7ca6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:06.434 [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 [] 08:58:06.434 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:58:06.434 [debug] QUERY OK source="tasks" db=0.3ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300630, 1301394, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.434 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/b2/06b2796318c2298d65032eec44c4d5bd2b406b5215e55bb5dc54605e4f673fba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:06.436 [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" [300631, 1301395, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.439 [debug] QUERY OK source="tasks" db=0.2ms idle=2.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300632, 1301397, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.441 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300633, 1301398, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.444 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300634, 1301399, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.446 [debug] QUERY OK source="tasks" db=0.3ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300635, 1301400, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.448 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300636, 2720968, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.450 [debug] QUERY OK source="tasks" db=0.1ms idle=1.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300637, 52, ~U[2026-04-30 13:58:06Z], ~U[2026-04-30 13:58:06Z]] 08:58:06.450 [info] {"args":{"id":52},"id":300623,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2393479,"event":"job:stop","queue_time":826235,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 08:58:07.905 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/b2/06b2796318c2298d65032eec44c4d5bd2b406b5215e55bb5dc54605e4f673fba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:07.905 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:07.905 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:07.906 [info] {"args":{"id":1301335},"id":300626,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1480545,"event":"job:stop","queue_time":423885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:07.912 [info] {"args":{"id":1301347},"id":300627,"meta":{},"system_time":1777557487912652391,"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"]} 08:58:07.913 [debug] QUERY OK source="media_items" db=0.2ms idle=1462.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" = ?) [1301347] 08:58:07.913 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:07.913 [debug] QUERY OK source="sources" db=0.1ms idle=1456.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" = ?) [52] 08:58:07.913 [debug] QUERY OK source="media_profiles" db=0.2ms idle=860.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] 08:58:07.914 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301347] 08:58:07.914 [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" = ?) [1301347] 08:58:07.914 [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] 08:58:07.915 [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 [] 08:58:07.915 [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 [] 08:58:07.915 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:07.916 [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 [] 08:58:07.916 [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 [] 08:58:07.917 [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 [] 08:58:07.917 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f9/79/f979f79254f90e662ee5bb538e6896dd0b93aaefde7dd31d62141f4c42afa920.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:08.039 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/dd/8bdddec08a954dc4db6f6b69bff6641cff0d1c4e203a11c4cdb4cc5ecaee7ca6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:08.040 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:08.040 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:08.040 [info] {"args":{"id":1301334},"id":300625,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1615187,"event":"job:stop","queue_time":423885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:08.046 [info] {"args":{"id":1301392},"id":300628,"meta":{},"system_time":1777557488046452508,"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"]} 08:58:08.046 [debug] QUERY OK source="media_items" db=0.1ms idle=129.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" = ?) [1301392] 08:58:08.047 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:08.047 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 08:58:08.047 [debug] QUERY OK source="media_profiles" db=0.1ms idle=130.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] 08:58:08.048 [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 [1301392] 08:58:08.049 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301392] 08:58:08.049 [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] 08:58:08.049 [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 [] 08:58:08.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 [] 08:58:08.050 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:08.051 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:08.051 [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 [] 08:58:08.051 [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 [] 08:58:08.052 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/82/de82d9298c4a29669ffc9b77fac2750d8a99b402f78756c0f00f048128c3ef8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:09.857 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/82/de82d9298c4a29669ffc9b77fac2750d8a99b402f78756c0f00f048128c3ef8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:09.857 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:09.857 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:09.857 [info] {"args":{"id":1301392},"id":300628,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1810966,"event":"job:stop","queue_time":2045947,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:09.864 [info] {"args":{"id":1301393},"id":300629,"meta":{},"system_time":1777557489864915141,"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"]} 08:58:09.865 [debug] QUERY OK source="media_items" db=0.1ms idle=1813.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" = ?) [1301393] 08:58:09.865 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:09.865 [debug] QUERY OK source="sources" db=0.1ms idle=1812.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" = ?) [52] 08:58:09.865 [debug] QUERY OK source="media_profiles" db=0.1ms idle=810.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] 08:58:09.866 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [1301393] 08:58:09.868 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301393] 08:58:09.868 [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] 08:58:09.868 [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 [] 08:58:09.868 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:09.869 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:09.869 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:09.869 [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 [] 08:58:09.869 [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 [] 08:58:09.869 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/04/08/0408aa9b4b6aff92c76724863080786cd1c293af80f943ca9dd3e069def3b7b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:10.010 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f9/79/f979f79254f90e662ee5bb538e6896dd0b93aaefde7dd31d62141f4c42afa920.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:10.011 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:10.011 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:10.011 [info] {"args":{"id":1301347},"id":300627,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2098551,"event":"job:stop","queue_time":1911900,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:10.017 [info] {"args":{"id":1301394},"id":300630,"meta":{},"system_time":1777557490017386444,"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"]} 08:58:10.017 [debug] QUERY OK source="media_items" db=0.1ms idle=148.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" = ?) [1301394] 08:58:10.017 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:10.018 [debug] QUERY OK source="sources" db=0.1ms idle=148.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" = ?) [52] 08:58:10.018 [debug] QUERY OK source="media_profiles" db=0.1ms idle=148.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] 08:58:10.018 [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 [1301394] 08:58:10.019 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 08:58:10.019 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:58:10.020 [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 [] 08:58:10.020 [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 [] 08:58:10.020 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:10.021 [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 [] 08:58:10.021 [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 [] 08:58:10.021 [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 [] 08:58:10.021 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/b6/b5b6e92b330ca6ac3385a414e347d4b4d4bbf9a4e102418c0e8ffc52ce31bb81.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:11.677 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/04/08/0408aa9b4b6aff92c76724863080786cd1c293af80f943ca9dd3e069def3b7b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:11.677 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:11.678 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:11.678 [info] {"args":{"id":1301393},"id":300629,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1813183,"event":"job:stop","queue_time":3863906,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:11.684 [info] {"args":{"id":1301395},"id":300631,"meta":{},"system_time":1777557491684873381,"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"]} 08:58:11.685 [debug] QUERY OK source="media_items" db=0.1ms idle=1663.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" = ?) [1301395] 08:58:11.685 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:11.685 [debug] QUERY OK source="sources" db=0.2ms idle=1628.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" = ?) [52] 08:58:11.685 [debug] QUERY OK source="media_profiles" db=0.2ms idle=627.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] 08:58:11.686 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301395] 08:58:11.687 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301395] 08:58:11.688 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 08:58:11.688 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:11.688 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:11.688 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:11.690 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:11.690 [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 [] 08:58:11.690 [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 [] 08:58:11.690 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/23/9e2399da3b1d6c64885a2247b3535b112040763925d247ccd967933a6cd22683.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:11.769 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/b6/b5b6e92b330ca6ac3385a414e347d4b4d4bbf9a4e102418c0e8ffc52ce31bb81.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:11.769 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:11.769 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:11.769 [info] {"args":{"id":1301394},"id":300630,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1752185,"event":"job:stop","queue_time":4016889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:11.776 [info] {"args":{"id":1301397},"id":300632,"meta":{},"system_time":1777557491776505770,"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"]} 08:58:11.776 [debug] QUERY OK source="media_items" db=0.1ms idle=86.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" = ?) [1301397] 08:58:11.776 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:11.777 [debug] QUERY OK source="sources" db=0.1ms idle=86.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" = ?) [52] 08:58:11.777 [debug] QUERY OK source="media_profiles" db=0.1ms idle=87.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] 08:58:11.778 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301397] 08:58:11.781 [debug] QUERY OK source="media_metadata" db=0.0ms idle=4.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" = ?) [1301397] 08:58:11.781 [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] 08:58:11.781 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:11.782 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 08:58:11.782 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:11.783 [debug] QUERY OK source="settings" db=0.0ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:11.783 [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 [] 08:58:11.783 [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 [] 08:58:11.783 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/76/c276606c841a29b08d0f7582635f19d8662031c6febbdc46690af1c27649a64a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:13.322 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/76/c276606c841a29b08d0f7582635f19d8662031c6febbdc46690af1c27649a64a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:13.322 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:13.322 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:13.322 [info] {"args":{"id":1301397},"id":300632,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1545725,"event":"job:stop","queue_time":5775954,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:13.328 [info] {"args":{"id":1301398},"id":300633,"meta":{},"system_time":1777557493328545377,"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"]} 08:58:13.328 [debug] QUERY OK source="media_items" db=0.1ms idle=347.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" = ?) [1301398] 08:58:13.329 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:13.329 [debug] QUERY OK source="sources" db=0.1ms idle=347.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" = ?) [52] 08:58:13.329 [debug] QUERY OK source="media_profiles" db=0.1ms idle=266.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] 08:58:13.329 [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 [1301398] 08:58:13.331 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301398] 08:58:13.331 [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] 08:58:13.331 [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 [] 08:58:13.331 [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 [] 08:58:13.331 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:13.333 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:13.333 [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 [] 08:58:13.333 [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 [] 08:58:13.333 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/ae/d5ae4308318ae5f62e9e178a315fa2fef9db07c313e9e95fbaac183c10f603e8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:13.778 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/23/9e2399da3b1d6c64885a2247b3535b112040763925d247ccd967933a6cd22683.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:13.778 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:13.778 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:13.779 [info] {"args":{"id":1301395},"id":300631,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2093982,"event":"job:stop","queue_time":5683950,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:13.785 [info] {"args":{"id":1301399},"id":300634,"meta":{},"system_time":1777557493785439716,"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"]} 08:58:13.785 [debug] QUERY OK source="media_items" db=0.1ms idle=452.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" = ?) [1301399] 08:58:13.785 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:13.786 [debug] QUERY OK source="sources" db=0.1ms idle=452.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" = ?) [52] 08:58:13.786 [debug] QUERY OK source="media_profiles" db=0.1ms idle=452.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] 08:58:13.786 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301399] 08:58:13.788 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301399] 08:58:13.788 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:58:13.789 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:13.789 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:13.789 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:13.790 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:13.790 [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 [] 08:58:13.790 [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 [] 08:58:13.790 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/99/d599ed4f74d557148acc04958d0984981d88a5d90ddae3304c2c2a96ba36341f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:15.128 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/ae/d5ae4308318ae5f62e9e178a315fa2fef9db07c313e9e95fbaac183c10f603e8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:15.128 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:15.128 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:15.129 [info] {"args":{"id":1301398},"id":300633,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1800452,"event":"job:stop","queue_time":7327905,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:15.136 [info] {"args":{"id":1301400},"id":300635,"meta":{},"system_time":1777557495135913270,"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"]} 08:58:15.136 [debug] QUERY OK source="media_items" db=0.2ms idle=155.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" = ?) [1301400] 08:58:15.136 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:15.136 [debug] QUERY OK source="sources" db=0.1ms idle=155.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" = ?) [52] 08:58:15.137 [debug] QUERY OK source="media_profiles" db=0.1ms idle=72.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] 08:58:15.137 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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 [1301400] 08:58:15.138 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301400] 08:58:15.138 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:58:15.139 [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 [] 08:58:15.139 [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 [] 08:58:15.139 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:15.140 [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 [] 08:58:15.140 [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 [] 08:58:15.140 [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 [] 08:58:15.140 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3f/89/3f897d8105d02e5dd1d32b70553db23f0b3b48300170767936320394247d7779.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:15.734 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/99/d599ed4f74d557148acc04958d0984981d88a5d90ddae3304c2c2a96ba36341f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:15.734 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:15.734 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:15.734 [info] {"args":{"id":1301399},"id":300634,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1948972,"event":"job:stop","queue_time":7784939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:15.741 [info] {"args":{"id":2720968},"id":300636,"meta":{},"system_time":1777557495741439120,"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"]} 08:58:15.741 [debug] QUERY OK source="media_items" db=0.1ms idle=601.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" = ?) [2720968] 08:58:15.741 [info] User scripts lifecyle file either not present or is empty. Skipping. 08:58:15.742 [debug] QUERY OK source="sources" db=0.2ms idle=601.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" = ?) [52] 08:58:15.742 [debug] QUERY OK source="media_profiles" db=0.1ms idle=602.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] 08:58:15.742 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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 [2720968] 08:58:15.745 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [2720968] 08:58:15.745 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 08:58:15.745 [debug] QUERY OK source="settings" db=0.0ms 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 [] 08:58:15.745 [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 [] 08:58:15.745 [debug] Running yt-dlp command for action: get_downloadable_status 08:58:15.747 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:58:15.747 [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 [] 08:58:15.747 [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 [] 08:58:15.747 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/52/855224fc2cfd112f0a97cf1f6661e7e6f73d0b147b4b1a25a131b6721082cc57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:58:16.733 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3f/89/3f897d8105d02e5dd1d32b70553db23f0b3b48300170767936320394247d7779.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:16.733 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:16.733 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:16.734 [info] {"args":{"id":1301400},"id":300635,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1597862,"event":"job:stop","queue_time":9134898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:17.378 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/52/855224fc2cfd112f0a97cf1f6661e7e6f73d0b147b4b1a25a131b6721082cc57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 08:58:17.378 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:17.379 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 08:58:17.379 [info] {"args":{"id":2720968},"id":300636,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1637760,"event":"job:stop","queue_time":9740904,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 08:58:36.171 [info] {"source":"oban","duration":3816,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:00.836 [info] {"source":"oban","duration":309,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 08:59:06.176 [info] {"source":"oban","duration":3282,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:36.179 [info] {"source":"oban","duration":2271,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:00.837 [info] {"source":"oban","duration":147,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:00:06.183 [info] {"source":"oban","duration":3457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:36.186 [info] {"source":"oban","duration":2400,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:00.838 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:01:06.189 [info] {"source":"oban","duration":2604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:36.193 [info] {"source":"oban","duration":3341,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:02:00.839 [info] {"source":"oban","duration":720,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:02:06.196 [info] {"source":"oban","duration":2500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:02:36.200 [info] {"source":"oban","duration":3298,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:00.841 [info] {"source":"oban","duration":145,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:03:06.203 [info] {"source":"oban","duration":2407,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:36.206 [info] {"source":"oban","duration":2489,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:00.842 [info] {"source":"oban","duration":201,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:04:06.209 [info] {"source":"oban","duration":2323,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:31.629 [info] {"args":{"id":1674834},"id":299149,"meta":{},"system_time":1777557871629552817,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:04:31.630 [debug] QUERY OK source="media_items" db=0.3ms idle=1648.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" = ?) [1674834] 09:04:31.630 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:04:31.630 [debug] QUERY OK source="sources" db=0.4ms idle=1649.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" = ?) [43] 09:04:31.631 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1010.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] 09:04:31.631 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [1674834] 09:04:31.633 [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" = ?) [1674834] 09:04:31.633 [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] 09:04:31.633 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:04:31.633 [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 [] 09:04:31.633 [debug] Running yt-dlp command for action: get_downloadable_status 09:04:31.634 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:04:31.634 [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 [] 09:04:31.634 [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 [] 09:04:31.635 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1GCNuSEpYek --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/b4/6db40bd90b410ba99e3e3d30cf7e05545e30c40d47d59e14257ecc82bccd1a04.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:04:33.471 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1GCNuSEpYek --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/b4/6db40bd90b410ba99e3e3d30cf7e05545e30c40d47d59e14257ecc82bccd1a04.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 1GCNuSEpYek: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:04:33.471 [error] yt-dlp download error for media item #1674834: "ERROR: [youtube] 1GCNuSEpYek: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:04:33.472 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1674834},"id":299149,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1842477,"event":"job:exception","queue_time":582822,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:04:36.213 [info] {"source":"oban","duration":3983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:00.843 [info] {"source":"oban","duration":166,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:05:06.218 [info] {"source":"oban","duration":3531,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:23.703 [info] {"args":{"id":30},"id":300596,"meta":{},"system_time":1777557923703091138,"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"]} 09:05:23.703 [debug] QUERY OK source="sources" db=0.1ms idle=1722.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" = ?) [30] 09:05:23.703 [debug] QUERY OK source="settings" db=0.1ms idle=1008.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 [] 09:05:23.709 [debug] QUERY OK source="media_items" db=5.4ms idle=723.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")))) [30] 09:05:23.710 [debug] QUERY OK source="media_items" db=0.4ms idle=12.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 09:05:23.710 [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] 09:05:23.710 [debug] QUERY OK source="settings" db=0.0ms idle=7.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 [] 09:05:23.711 [debug] QUERY OK source="settings" db=0.0ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:05:23.719 [debug] QUERY OK source="media_items" db=6.0ms 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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 09:05:23.721 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:05:23.721 [debug] Current batch of media processed. Will check again in 1000ms 09:05:23.721 [debug] QUERY OK source="settings" db=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 [] 09:05:23.721 [debug] QUERY OK source="settings" db=0.1ms idle=11.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:05:23.722 [debug] QUERY OK source="settings" db=0.1ms idle=10.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:05:23.722 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/c8/77/c87766ad194a1c6475eab5f0499e38fbb9b55d037bb8eaf1eb0cd49b72080fe2.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/79/f4/79f430eb7372a354a8fabe50f567cadda41cad270b633d311088d75205d9d6aa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:05:24.722 [debug] Current batch of media processed. Will check again in 1000ms 09:05:25.723 [debug] Current batch of media processed. Will check again in 1000ms 09:05:26.724 [debug] Current batch of media processed. Will check again in 1000ms 09:05:27.725 [debug] Current batch of media processed. Will check again in 1000ms 09:05:28.726 [debug] Current batch of media processed. Will check again in 1000ms 09:05:29.727 [debug] Current batch of media processed. Will check again in 1000ms 09:05:30.728 [debug] Current batch of media processed. Will check again in 1000ms 09:05:31.729 [debug] Current batch of media processed. Will check again in 1000ms 09:05:32.730 [debug] Current batch of media processed. Will check again in 1000ms 09:05:33.731 [debug] Current batch of media processed. Will check again in 1000ms 09:05:34.732 [debug] Current batch of media processed. Will check again in 1000ms 09:05:35.733 [debug] Current batch of media processed. Will check again in 1000ms 09:05:36.222 [info] {"source":"oban","duration":3218,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:36.733 [debug] Current batch of media processed. Will check again in 1000ms 09:05:37.735 [debug] Current batch of media processed. Will check again in 1000ms 09:05:38.736 [debug] Current batch of media processed. Will check again in 1000ms 09:05:39.737 [debug] Current batch of media processed. Will check again in 1000ms 09:05:40.738 [debug] Current batch of media processed. Will check again in 1000ms 09:05:41.739 [debug] Current batch of media processed. Will check again in 1000ms 09:05:42.724 [info] {"args":{"id":1144904},"id":299148,"meta":{},"system_time":1777557942724467062,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:05:42.724 [debug] QUERY OK source="media_items" db=0.2ms idle=1743.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" = ?) [1144904] 09:05:42.725 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:05:42.725 [debug] QUERY OK source="sources" db=0.2ms idle=1008.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" = ?) [43] 09:05:42.725 [debug] QUERY OK source="media_profiles" db=0.1ms idle=744.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] 09:05:42.726 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1144904] 09:05:42.728 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1144904] 09:05:42.728 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:05:42.728 [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 [] 09:05:42.728 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:05:42.729 [debug] Running yt-dlp command for action: get_downloadable_status 09:05:42.729 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:05:42.730 [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 [] 09:05:42.730 [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 [] 09:05:42.730 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SM9ZE0_BQNg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/6a/466af66cb83fb905450a9f84959ee0f25b766fb889639a1e4a1906429dbcac8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:05:42.740 [debug] Current batch of media processed. Will check again in 1000ms 09:05:43.741 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1328, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", "id" => "npKb9UAxDxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npKb9UAxDxQ", "playlist_index" => 1, "timestamp" => 1777483828, "title" => "The Future Of KDE Plasma Looks Incredible", "upload_date" => "20260429"} 09:05:43.741 [debug] QUERY OK source="sources" db=0.2ms idle=1012.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 (?)) [30] 09:05:43.742 [debug] QUERY OK source="sources" db=0.1ms idle=1011.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" = ?) [30] 09:05:43.746 [debug] QUERY OK source="media_items" db=4.5ms idle=1012.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 09:05:43.748 [debug] QUERY OK source="media_items" db=1.0ms idle=1016.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "9595d8ae-dc10-479f-bf19-98f239cb5533", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 14:05:43Z], ~U[2026-04-30 14:05:43Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 09:05:43.748 [debug] QUERY OK source="sources" db=0.1ms idle=29.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" = ?) [30] 09:05:43.748 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:05:43.749 [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 [2838902] 09:05:43.749 [debug] Current batch of media processed. Will check again in 1000ms 09:05:44.508 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SM9ZE0_BQNg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/6a/466af66cb83fb905450a9f84959ee0f25b766fb889639a1e4a1906429dbcac8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SM9ZE0_BQNg: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:05:44.508 [error] yt-dlp download error for media item #1144904: "ERROR: [youtube] SM9ZE0_BQNg: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:05:44.510 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1144904},"id":299148,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1784561,"event":"job:exception","queue_time":607380,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:05:44.750 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1567, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", "id" => "lIK4hKCXZHs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lIK4hKCXZHs", "playlist_index" => 2, "timestamp" => 1777397422, "title" => "Valve has Cooked Up Something Amazing", "upload_date" => "20260428"} 09:05:44.750 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [30] 09:05:44.751 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 09:05:44.755 [debug] QUERY OK source="media_items" db=4.3ms idle=240.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 09:05:44.757 [debug] QUERY OK source="media_items" db=1.2ms idle=239.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "079e40be-deda-47f4-b61f-b045cd6d9529", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 14:05:44Z], ~U[2026-04-30 14:05:44Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 09:05:44.757 [debug] QUERY OK source="sources" db=0.1ms idle=37.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" = ?) [30] 09:05:44.757 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:05:44.758 [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 [2831238] 09:05:44.758 [debug] Current batch of media processed. Will check again in 1000ms 09:05:45.759 [debug] Current batch of media processed. Will check again in 1000ms 09:05:46.760 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1123, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", "id" => "tLKOH-CUWyI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tLKOH-CUWyI", "playlist_index" => 3, "timestamp" => 1777311030, "title" => "Protect Your Linux Desktop From Malicious USB Devices", "upload_date" => "20260427"} 09:05:46.760 [debug] QUERY OK source="sources" db=0.2ms idle=779.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 (?)) [30] 09:05:46.761 [debug] QUERY OK source="sources" db=0.2ms idle=779.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" = ?) [30] 09:05:46.765 [debug] QUERY OK source="media_items" db=4.4ms idle=780.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 09:05:46.767 [debug] QUERY OK source="media_items" db=1.0ms idle=784.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "8f225db6-bfaf-4514-92a0-f286dddb01a0", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 14:05:46Z], ~U[2026-04-30 14:05:46Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 09:05:46.767 [debug] QUERY OK source="sources" db=0.1ms idle=44.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" = ?) [30] 09:05:46.767 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:05:46.768 [debug] QUERY OK source="media_items" db=0.2ms 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 [2823571] 09:05:46.768 [debug] Current batch of media processed. Will check again in 1000ms 09:05:47.768 [debug] Current batch of media processed. Will check again in 1000ms 09:05:48.770 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1104, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", "id" => "989vCMg3Qv8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=989vCMg3Qv8", "playlist_index" => 4, "timestamp" => 1777224603, "title" => "One Maintainer Is All It Takes To Break A Project", "upload_date" => "20260426"} 09:05:48.770 [debug] QUERY OK source="sources" db=0.1ms idle=789.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 (?)) [30] 09:05:48.771 [debug] QUERY OK source="sources" db=0.1ms idle=789.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" = ?) [30] 09:05:48.776 [debug] QUERY OK source="media_items" db=4.7ms idle=790.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 09:05:48.777 [debug] QUERY OK source="media_items" db=1.1ms idle=795.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "56e2d6b5-6263-4c72-ad76-7e092c4f9e8b", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 14:05:48Z], ~U[2026-04-30 14:05:48Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 09:05:48.778 [debug] QUERY OK source="sources" db=0.1ms idle=52.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" = ?) [30] 09:05:48.778 [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] 09:05:48.778 [debug] QUERY OK source="media_items" db=0.2ms 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 [2816002] 09:05:48.779 [debug] Current batch of media processed. Will check again in 1000ms 09:05:49.780 [debug] Current batch of media processed. Will check again in 1000ms 09:05:50.781 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 968, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", "id" => "kvMBenjrbOA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kvMBenjrbOA", "playlist_index" => 5, "timestamp" => 1777138210, "title" => "There's No Way This Web Extension Is Real", "upload_date" => "20260425"} 09:05:50.782 [debug] QUERY OK source="sources" db=0.2ms idle=801.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 (?)) [30] 09:05:50.782 [debug] QUERY OK source="sources" db=0.1ms idle=801.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" = ?) [30] 09:05:50.787 [debug] QUERY OK source="media_items" db=4.2ms idle=801.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 09:05:50.790 [debug] QUERY OK source="media_items" db=3.2ms idle=806.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "1900a725-3ad5-4243-adf9-34890542d64d", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 14:05:50Z], ~U[2026-04-30 14:05:50Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 09:05:50.791 [debug] QUERY OK source="sources" db=0.2ms idle=61.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" = ?) [30] 09:05:50.791 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:05:50.792 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2808334] 09:05:50.792 [debug] Current batch of media processed. Will check again in 1000ms 09:05:51.793 [debug] Current batch of media processed. Will check again in 1000ms 09:05:52.794 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 926, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", "id" => "I4sP8K8c6yc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I4sP8K8c6yc", "playlist_index" => 6, "timestamp" => 1776965404, "title" => "Oxygen Squared The KDE Design We Never Had", "upload_date" => "20260423"} 09:05:52.794 [debug] QUERY OK source="sources" db=0.1ms idle=813.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 (?)) [30] 09:05:52.794 [debug] QUERY OK source="sources" db=0.1ms idle=813.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" = ?) [30] 09:05:52.799 [debug] QUERY OK source="media_items" db=4.7ms idle=814.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 09:05:52.801 [debug] QUERY OK source="media_items" db=1.3ms idle=819.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "852b53b2-8b23-4f30-b5c7-54db1fd2a097", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 14:05:52Z], ~U[2026-04-30 14:05:52Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 09:05:52.802 [debug] QUERY OK source="sources" db=0.1ms idle=69.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" = ?) [30] 09:05:52.802 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:05:52.802 [debug] QUERY OK source="media_items" db=0.1ms 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 [2793046] 09:05:52.802 [debug] Current batch of media processed. Will check again in 1000ms 09:05:53.804 [debug] Current batch of media processed. Will check again in 1000ms 09:05:54.805 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1136, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", "id" => "7YPnh6dlyQQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "playlist_index" => 7, "timestamp" => 1776879004, "title" => "IPv8 Changes Everything We Know About IP", "upload_date" => "20260422"} 09:05:54.806 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=824.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 (?)) [30] 09:05:54.806 [debug] QUERY OK source="sources" db=0.0ms idle=825.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" = ?) [30] 09:05:54.810 [debug] QUERY OK source="media_items" db=4.2ms idle=825.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 09:05:54.812 [debug] QUERY OK source="media_items" db=1.1ms idle=829.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "9993e8ba-4022-489f-b3ba-773b90e2996b", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 14:05:54Z], ~U[2026-04-30 14:05:54Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 09:05:54.812 [debug] QUERY OK source="sources" db=0.1ms idle=76.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" = ?) [30] 09:05:54.812 [debug] QUERY OK source="media_profiles" db=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] 09:05:54.813 [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 [2785377] 09:05:54.813 [debug] Current batch of media processed. Will check again in 1000ms 09:05:55.814 [debug] Current batch of media processed. Will check again in 1000ms 09:05:56.815 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1109, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", "id" => "a4BxvWs9PGE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=a4BxvWs9PGE", "playlist_index" => 8, "timestamp" => 1776792600, "title" => "Github Hates That This Repo Still Exists", "upload_date" => "20260421"} 09:05:56.816 [debug] QUERY OK source="sources" db=0.2ms idle=834.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 (?)) [30] 09:05:56.816 [debug] QUERY OK source="sources" db=0.1ms idle=835.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" = ?) [30] 09:05:56.821 [debug] QUERY OK source="media_items" db=4.5ms idle=835.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 09:05:56.822 [debug] QUERY OK source="media_items" db=1.0ms idle=840.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "ee17f7b2-f995-422c-b3a6-dd063dc69b09", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 14:05:56Z], ~U[2026-04-30 14:05:56Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 09:05:56.822 [debug] QUERY OK source="sources" db=0.1ms idle=83.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" = ?) [30] 09:05:56.823 [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] 09:05:56.823 [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 [2777718] 09:05:56.823 [debug] Current batch of media processed. Will check again in 1000ms 09:05:57.824 [debug] Current batch of media processed. Will check again in 1000ms 09:05:58.825 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1304, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", "id" => "83heISygLyA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=83heISygLyA", "playlist_index" => 9, "timestamp" => 1776706202, "title" => "Bizarre World Of Wikipedia Deleting Programming Pages", "upload_date" => "20260420"} 09:05:58.826 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=844.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 (?)) [30] 09:05:58.826 [debug] QUERY OK source="sources" db=0.1ms idle=844.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" = ?) [30] 09:05:58.831 [debug] QUERY OK source="media_items" db=4.3ms idle=845.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 09:05:58.832 [debug] QUERY OK source="media_items" db=1.0ms idle=849.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "147ee614-cb3c-4f71-bffa-069e61cc0e49", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 14:05:58Z], ~U[2026-04-30 14:05:58Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 09:05:58.832 [debug] QUERY OK source="sources" db=0.1ms idle=90.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" = ?) [30] 09:05:58.833 [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] 09:05:58.833 [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 [2769902] 09:05:58.833 [debug] Current batch of media processed. Will check again in 1000ms 09:05:59.834 [debug] Current batch of media processed. Will check again in 1000ms 09:06:00.835 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1083, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", "id" => "g9TEuezEm9c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g9TEuezEm9c", "playlist_index" => 10, "timestamp" => 1776619810, "title" => "The Linux Kernel Has Ancient Weird Problems", "upload_date" => "20260419"} 09:06:00.836 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=854.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 (?)) [30] 09:06:00.836 [debug] QUERY OK source="sources" db=0.1ms idle=855.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" = ?) [30] 09:06:00.841 [debug] QUERY OK source="media_items" db=4.3ms idle=855.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 09:06:00.842 [debug] QUERY OK source="media_items" db=1.0ms idle=860.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "ada9a63b-a9a1-4c1f-963b-c2adfedebc90", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 14:06:00Z], ~U[2026-04-30 14:06:00Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 09:06:00.843 [debug] QUERY OK source="sources" db=0.2ms idle=96.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" = ?) [30] 09:06:00.843 [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] 09:06:00.843 [debug] QUERY OK source="media_items" db=0.2ms 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 [2761936] 09:06:00.843 [debug] Current batch of media processed. Will check again in 1000ms 09:06:00.843 [info] {"source":"oban","duration":55,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:06:01.844 [debug] Current batch of media processed. Will check again in 1000ms 09:06:02.845 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1064, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", "id" => "HRsdi7YJ8dI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "playlist_index" => 11, "timestamp" => 1776533409, "title" => "I'm Conflicted About Future Of Open Source", "upload_date" => "20260418"} 09:06:02.845 [debug] QUERY OK source="sources" db=0.2ms idle=863.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 (?)) [30] 09:06:02.845 [debug] QUERY OK source="sources" db=0.1ms idle=864.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" = ?) [30] 09:06:02.850 [debug] QUERY OK source="media_items" db=4.4ms idle=864.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 09:06:02.852 [debug] QUERY OK source="media_items" db=1.5ms idle=869.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "c5c8a4dd-b285-430d-9d01-78c1e6ca1922", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 14:06:02Z], ~U[2026-04-30 14:06:02Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 09:06:02.852 [debug] QUERY OK source="sources" db=0.2ms idle=103.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" = ?) [30] 09:06:02.853 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:02.853 [debug] QUERY OK source="media_items" db=0.1ms 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 [2753905] 09:06:02.853 [debug] Current batch of media processed. Will check again in 1000ms 09:06:03.854 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1191, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", "id" => "xToLWuGLSNs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xToLWuGLSNs", "playlist_index" => 12, "timestamp" => 1776360613, "title" => "Linux Kernel Would Randomly Explode In The Past", "upload_date" => "20260416"} 09:06:03.855 [debug] QUERY OK source="sources" db=0.3ms idle=1002.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 (?)) [30] 09:06:03.855 [debug] QUERY OK source="sources" db=0.3ms idle=1002.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" = ?) [30] 09:06:03.860 [debug] QUERY OK source="media_items" db=4.2ms idle=1002.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 09:06:03.861 [debug] QUERY OK source="media_items" db=1.0ms idle=1007.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "4220bad1-4545-4ac9-87e4-aae093c7b8cd", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 14:06:03Z], ~U[2026-04-30 14:06:03Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 09:06:03.862 [debug] QUERY OK source="sources" db=0.2ms idle=110.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" = ?) [30] 09:06:03.862 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:03.862 [debug] QUERY OK source="media_items" db=0.2ms 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 [2739256] 09:06:03.862 [debug] Current batch of media processed. Will check again in 1000ms 09:06:04.864 [debug] Current batch of media processed. Will check again in 1000ms 09:06:05.865 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1221, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", "id" => "KQu1oRRVAVo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KQu1oRRVAVo", "playlist_index" => 13, "timestamp" => 1776274207, "title" => "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "upload_date" => "20260415"} 09:06:05.865 [debug] QUERY OK source="sources" db=0.2ms idle=884.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 (?)) [30] 09:06:05.865 [debug] QUERY OK source="sources" db=0.0ms idle=884.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" = ?) [30] 09:06:05.870 [debug] QUERY OK source="media_items" db=4.4ms idle=884.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 09:06:05.872 [debug] QUERY OK source="media_items" db=1.1ms idle=889.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "0915a387-a0ba-43fe-87f7-1b4f49bf10b9", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 14:06:05Z], ~U[2026-04-30 14:06:05Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 09:06:05.872 [debug] QUERY OK source="sources" db=0.1ms idle=117.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" = ?) [30] 09:06:05.872 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:05.873 [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 [2737248] 09:06:05.873 [debug] Current batch of media processed. Will check again in 1000ms 09:06:06.227 [info] {"source":"oban","duration":4084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:06:06.874 [debug] Current batch of media processed. Will check again in 1000ms 09:06:07.875 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1388, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", "id" => "3ojCgjkGzX0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3ojCgjkGzX0", "playlist_index" => 14, "timestamp" => 1776187801, "title" => "Valve Changes Everything For Low VRAM GPUs On Linux", "upload_date" => "20260414"} 09:06:07.875 [debug] QUERY OK source="sources" db=0.3ms idle=1120.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 (?)) [30] 09:06:07.876 [debug] QUERY OK source="sources" db=0.1ms idle=895.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" = ?) [30] 09:06:07.880 [debug] QUERY OK source="media_items" db=4.2ms idle=895.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 09:06:07.881 [debug] QUERY OK source="media_items" db=0.9ms idle=899.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "b594996e-3937-499b-9343-8066f121e48e", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 14:06:07Z], ~U[2026-04-30 14:06:07Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 09:06:07.882 [debug] QUERY OK source="sources" db=0.3ms idle=125.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" = ?) [30] 09:06:07.882 [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] 09:06:07.883 [debug] QUERY OK source="media_items" db=0.2ms 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 [2729471] 09:06:07.883 [debug] Current batch of media processed. Will check again in 1000ms 09:06:08.884 [debug] Current batch of media processed. Will check again in 1000ms 09:06:09.885 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1405, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", "id" => "-3MJA0NfvRE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-3MJA0NfvRE", "playlist_index" => 15, "timestamp" => 1776101400, "title" => "Console Hackers Put Linux On Everything", "upload_date" => "20260413"} 09:06:09.886 [debug] QUERY OK source="sources" db=0.2ms idle=905.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 (?)) [30] 09:06:09.886 [debug] QUERY OK source="sources" db=0.1ms idle=905.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" = ?) [30] 09:06:09.891 [debug] QUERY OK source="media_items" db=4.6ms idle=905.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 09:06:09.893 [debug] QUERY OK source="media_items" db=1.0ms idle=910.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "83a6ea09-e460-4ebb-9b32-8d6e119313ae", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 14:06:09Z], ~U[2026-04-30 14:06:09Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 09:06:09.893 [debug] QUERY OK source="sources" db=0.1ms idle=132.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" = ?) [30] 09:06:09.893 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:09.894 [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 [2721843] 09:06:09.894 [debug] Current batch of media processed. Will check again in 1000ms 09:06:10.895 [debug] Current batch of media processed. Will check again in 1000ms 09:06:11.896 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 716, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", "id" => "yiuQB1Dq3Xk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "playlist_index" => 16, "timestamp" => 1776015028, "title" => "The Linux Kernel Eliminated This Entire C Function", "upload_date" => "20260412"} 09:06:11.896 [debug] QUERY OK source="sources" db=0.1ms idle=915.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 (?)) [30] 09:06:11.897 [debug] QUERY OK source="sources" db=0.1ms idle=916.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" = ?) [30] 09:06:11.901 [debug] QUERY OK source="media_items" db=4.3ms idle=916.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 09:06:11.903 [debug] QUERY OK source="media_items" db=1.0ms idle=920.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "90daae92-d9f0-40bf-a1f1-b56113cf429f", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 14:06:11Z], ~U[2026-04-30 14:06:11Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 09:06:11.903 [debug] QUERY OK source="sources" db=0.1ms idle=138.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" = ?) [30] 09:06:11.903 [debug] QUERY OK source="media_profiles" db=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] 09:06:11.904 [debug] QUERY OK source="media_items" db=0.2ms 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 [2714041] 09:06:11.904 [debug] Current batch of media processed. Will check again in 1000ms 09:06:12.905 [debug] Current batch of media processed. Will check again in 1000ms 09:06:13.906 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 806, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", "id" => "uMDwmg7i2_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uMDwmg7i2_4", "playlist_index" => 17, "timestamp" => 1775928629, "title" => "\"Copilot Is For Entertainment Purposes Only\"", "upload_date" => "20260411"} 09:06:13.907 [debug] QUERY OK source="sources" db=0.2ms idle=926.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 (?)) [30] 09:06:13.908 [debug] QUERY OK source="sources" db=0.1ms idle=926.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" = ?) [30] 09:06:13.912 [debug] QUERY OK source="media_items" db=4.3ms idle=927.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 09:06:13.914 [debug] QUERY OK source="media_items" db=1.1ms idle=931.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "297392bc-2c74-4d98-a990-6f786c979246", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 14:06:13Z], ~U[2026-04-30 14:06:13Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 09:06:13.914 [debug] QUERY OK source="sources" db=0.1ms idle=146.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" = ?) [30] 09:06:13.914 [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] 09:06:13.915 [debug] QUERY OK source="media_items" db=0.2ms 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 [2706404] 09:06:13.915 [debug] Current batch of media processed. Will check again in 1000ms 09:06:14.916 [debug] Current batch of media processed. Will check again in 1000ms 09:06:15.917 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", "id" => "Sk11hvLZiEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk11hvLZiEA", "playlist_index" => 18, "timestamp" => 1775755805, "title" => "The Linux Open Source Document Editors Are Fighting", "upload_date" => "20260409"} 09:06:15.918 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=936.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 (?)) [30] 09:06:15.918 [debug] QUERY OK source="sources" db=0.1ms idle=937.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" = ?) [30] 09:06:15.923 [debug] QUERY OK source="media_items" db=4.4ms idle=937.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 09:06:15.924 [debug] QUERY OK source="media_items" db=1.2ms idle=942.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "cb1dfb75-c49d-4514-b054-02327246b06f", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 14:06:15Z], ~U[2026-04-30 14:06:15Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 09:06:15.925 [debug] QUERY OK source="sources" db=0.1ms idle=154.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" = ?) [30] 09:06:15.925 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:15.925 [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 [2690052] 09:06:15.925 [debug] Current batch of media processed. Will check again in 1000ms 09:06:16.927 [debug] Current batch of media processed. Will check again in 1000ms 09:06:17.928 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 823, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", "id" => "4XN_1MVwZJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "playlist_index" => 19, "timestamp" => 1775669401, "title" => "This One Annoying Linux Problem Is Finally Ending", "upload_date" => "20260408"} 09:06:17.928 [debug] QUERY OK source="sources" db=0.2ms idle=947.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 (?)) [30] 09:06:17.929 [debug] QUERY OK source="sources" db=0.1ms idle=947.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" = ?) [30] 09:06:17.933 [debug] QUERY OK source="media_items" db=4.6ms idle=948.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 09:06:17.935 [debug] QUERY OK source="media_items" db=1.0ms idle=952.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "82167e3f-2910-4ac7-89c4-ade7fa41d04e", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 14:06:17Z], ~U[2026-04-30 14:06:17Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 09:06:17.935 [debug] QUERY OK source="sources" db=0.1ms idle=160.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" = ?) [30] 09:06:17.935 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:06:17.936 [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 [2681964] 09:06:17.936 [debug] Current batch of media processed. Will check again in 1000ms 09:06:18.937 [debug] Current batch of media processed. Will check again in 1000ms 09:06:19.748 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/c8/77/c87766ad194a1c6475eab5f0499e38fbb9b55d037bb8eaf1eb0cd49b72080fe2.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/79/f4/79f430eb7372a354a8fabe50f567cadda41cad270b633d311088d75205d9d6aa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:06:19.749 [debug] Gracefully stopping file follower 09:06:19.749 [debug] QUERY OK source="sources" db=0.2ms idle=972.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 (?)) [30] 09:06:19.750 [debug] QUERY OK source="sources" db=0.1ms idle=769.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" = ?) [30] 09:06:19.754 [debug] QUERY OK source="media_items" db=4.3ms idle=769.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 09:06:19.756 [debug] QUERY OK source="media_items" db=0.9ms idle=773.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "26693eab-59aa-4e56-b528-742250f12038", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 09:06:19.756 [debug] QUERY OK source="sources" db=0.1ms idle=775.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" = ?) [30] 09:06:19.760 [debug] QUERY OK source="media_items" db=4.2ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 09:06:19.765 [debug] QUERY OK source="media_items" db=3.9ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "34a86639-3a35-49fd-ae66-42241fc48add", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 09:06:19.766 [debug] QUERY OK source="sources" db=0.6ms idle=10.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" = ?) [30] 09:06:19.770 [debug] QUERY OK source="media_items" db=4.1ms idle=10.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 09:06:19.771 [debug] QUERY OK source="media_items" db=1.1ms idle=14.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "6ecef7d0-874e-49a5-970d-22ed7f015939", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 09:06:19.772 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.776 [debug] QUERY OK source="media_items" db=4.1ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 09:06:19.794 [debug] QUERY OK source="media_items" db=16.7ms idle=11.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "bcfbe736-ece0-4ae1-8dc9-87a57a84193a", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 09:06:19.794 [debug] QUERY OK source="sources" db=0.3ms idle=22.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" = ?) [30] 09:06:19.799 [debug] QUERY OK source="media_items" db=4.3ms idle=22.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 09:06:19.809 [debug] QUERY OK source="media_items" db=9.3ms idle=22.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "021a2031-6c76-4beb-8fa0-139c960a7092", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 09:06:19.809 [debug] QUERY OK source="sources" db=0.2ms idle=30.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" = ?) [30] 09:06:19.813 [debug] QUERY OK source="media_items" db=4.0ms idle=15.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 09:06:19.815 [debug] QUERY OK source="media_items" db=0.9ms idle=19.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "d2a9e55f-eed3-4148-89f8-96e5c61c9f5f", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 09:06:19.816 [debug] QUERY OK source="sources" db=0.6ms idle=15.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" = ?) [30] 09:06:19.820 [debug] QUERY OK source="media_items" db=4.0ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 09:06:19.821 [debug] QUERY OK source="media_items" db=1.1ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "bed34fc0-97fb-4140-bd84-bd74b12c3358", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 09:06:19.822 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.826 [debug] QUERY OK source="media_items" db=3.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 09:06:19.828 [debug] QUERY OK source="media_items" db=0.9ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "2c8f825f-eb50-48b5-95b1-8326c0b99495", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 09:06:19.828 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 09:06:19.832 [debug] QUERY OK source="media_items" db=3.9ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 09:06:19.834 [debug] QUERY OK source="media_items" db=1.0ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "adedc396-cd6a-4842-a05d-650dfb276967", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 09:06:19.834 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 09:06:19.838 [debug] QUERY OK source="media_items" db=3.9ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 09:06:19.840 [debug] QUERY OK source="media_items" db=0.9ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "32222b58-82ee-475a-9ec1-bbbf629ec0c4", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 09:06:19.840 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 09:06:19.845 [debug] QUERY OK source="media_items" db=4.1ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 09:06:19.846 [debug] QUERY OK source="media_items" db=0.9ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "bc2e5e8b-cb61-4737-9e27-7670919b7a8c", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 09:06:19.847 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.851 [debug] QUERY OK source="media_items" db=4.1ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 09:06:19.852 [debug] QUERY OK source="media_items" db=0.8ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "a2f6c018-3d16-4083-9e90-7736381c43b9", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 09:06:19.853 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.857 [debug] QUERY OK source="media_items" db=3.9ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 09:06:19.858 [debug] QUERY OK source="media_items" db=0.9ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "74f649ee-e7b6-422a-b282-e4220550456c", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 09:06:19.859 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.863 [debug] QUERY OK source="media_items" db=3.8ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 09:06:19.864 [debug] QUERY OK source="media_items" db=0.8ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "7fc01421-8875-43cc-91a1-56a0c7783144", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 09:06:19.865 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.869 [debug] QUERY OK source="media_items" db=3.9ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 09:06:19.870 [debug] QUERY OK source="media_items" db=0.8ms idle=10.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "88993624-67f9-45b4-8f6a-4f2a9a3245a7", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 09:06:19.871 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.875 [debug] QUERY OK source="media_items" db=3.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 09:06:19.876 [debug] QUERY OK source="media_items" db=0.9ms idle=10.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "c248311b-8c58-44a2-8140-d88b91cf2634", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 09:06:19.877 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.881 [debug] QUERY OK source="media_items" db=3.8ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 09:06:19.882 [debug] QUERY OK source="media_items" db=0.9ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "523f9281-40b9-4e0e-b819-a72b4b330422", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 09:06:19.883 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.887 [debug] QUERY OK source="media_items" db=3.8ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 09:06:19.891 [debug] QUERY OK source="media_items" db=3.4ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "0624b868-222c-4a21-9033-ecfbc61aa839", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 09:06:19.891 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:06:19.895 [debug] QUERY OK source="media_items" db=3.9ms idle=9.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 09:06:19.897 [debug] QUERY OK source="media_items" db=1.1ms idle=12.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4095642d-2576-45f0-b2d1-1f33e4c06324", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 09:06:19.898 [debug] QUERY OK source="sources" db=0.6ms idle=10.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" = ?) [30] 09:06:19.902 [debug] QUERY OK source="media_items" db=4.1ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 17:30:06Z], 30] 09:06:19.904 [debug] QUERY OK source="media_items" db=1.1ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "decc6f7d-f6cf-4d8e-9391-de16cde5720a", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, false, false, 30, [], 98, ~U[2026-04-07 17:30:06Z], ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], "Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, 30, ~U[2026-04-07 17:30:06Z]] 09:06:19.904 [debug] QUERY OK source="sources" db=0.5ms idle=8.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z], 30] 09:06:19.909 [debug] QUERY OK source="media_items" db=4.1ms 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 ((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")))) [30] 09:06:19.913 [debug] QUERY OK source="media_items" db=4.3ms idle=10.9ms 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")))) [30] 09:06:19.914 [debug] QUERY OK source="media_items" db=0.8ms idle=11.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 09:06:19.916 [debug] QUERY OK source="tasks" db=0.5ms idle=6.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300638, 30, ~U[2026-04-30 14:06:19Z], ~U[2026-04-30 14:06:19Z]] 09:06:19.916 [info] {"args":{"id":30},"id":300596,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":56213186,"event":"job:stop","queue_time":209570,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:06:36.231 [info] {"source":"oban","duration":3282,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:00.845 [info] {"source":"oban","duration":96,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:07:06.235 [info] {"source":"oban","duration":3581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:36.239 [info] {"source":"oban","duration":3566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:00.846 [info] {"source":"oban","duration":225,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:08:06.243 [info] {"source":"oban","duration":3518,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:06.957 [info] {"args":{"id":43},"id":300565,"meta":{},"system_time":1777558086957177576,"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"]} 09:08:06.957 [debug] QUERY OK source="sources" db=0.3ms idle=976.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" = ?) [43] 09:08:06.958 [debug] QUERY OK source="settings" db=0.3ms idle=714.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 [] 09:08:06.958 [info] {"args":{"id":52},"id":300637,"meta":{},"system_time":1777558086958422325,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:08:06.958 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 09:08:06.959 [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 [] 09:08:06.959 [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] 09:08:06.959 [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 [] 09:08:06.959 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:08:06.962 [debug] QUERY OK source="media_items" db=3.8ms idle=9.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")))) [43] 09:08:06.962 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 09:08:06.962 [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] 09:08:06.963 [debug] QUERY OK source="settings" db=0.1ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:08:06.963 [debug] QUERY OK source="settings" db=0.1ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:08:06.967 [debug] QUERY OK source="media_items" db=2.2ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [43] 09:08:06.968 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:08:06.969 [debug] Current batch of media processed. Will check again in 1000ms 09:08:06.969 [debug] QUERY OK source="settings" db=0.0ms idle=6.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 [] 09:08:06.969 [debug] QUERY OK source="settings" db=0.1ms idle=6.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 [] 09:08:06.969 [debug] QUERY OK source="settings" db=0.0ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:08:06.969 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/25/67/2567bbfdfc30f3fbf58fa3bb042248c3e539f7db6363977bc384fb393c15fe71.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/23/c0/23c0a439ea3101812852db2dfcf6b687457ccbcced81507a9266c6aedd90822f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:07.201 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:08:07.202 [debug] QUERY OK source="media_items" db=0.4ms idle=238.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:08:07.203 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:08:07.203 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:07.203 [debug] Running yt-dlp command for action: get_media_attributes 09:08:07.204 [debug] QUERY OK source="settings" db=0.0ms idle=235.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:08:07.205 [debug] QUERY OK source="settings" db=0.0ms idle=235.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:08:07.205 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:07.205 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/0e/64/0e648ba3f6cedac047f60346b7d1983961ec484a1758f94e88a756736533da61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:07.970 [debug] Current batch of media processed. Will check again in 1000ms 09:08:08.970 [debug] Current batch of media processed. Will check again in 1000ms 09:08:09.027 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/0e/64/0e648ba3f6cedac047f60346b7d1983961ec484a1758f94e88a756736533da61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:08:09.027 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:08:09.028 [debug] QUERY OK source="media_items" db=0.6ms idle=75.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 ((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")))) [52] 09:08:09.031 [debug] QUERY OK source="tasks" db=0.2ms idle=49.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300639, 1301334, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.033 [debug] QUERY OK source="tasks" db=0.3ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300640, 1301335, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.035 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300641, 1301347, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.036 [info] {"args":{"id":1301334},"id":300639,"meta":{},"system_time":1777558089036920245,"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"]} 09:08:09.037 [info] {"args":{"id":1301335},"id":300640,"meta":{},"system_time":1777558089036955734,"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"]} 09:08:09.037 [debug] QUERY OK source="media_items" db=0.5ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 09:08:09.037 [debug] QUERY OK source="media_items" db=0.5ms 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 WHERE (m0."id" = ?) [1301335] 09:08:09.037 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:09.037 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:09.038 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms 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" = ?) [52] 09:08:09.038 [debug] QUERY OK source="sources" db=0.4ms queue=0.3ms 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" = ?) [52] 09:08:09.039 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms 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] 09:08:09.039 [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] 09:08:09.039 [debug] QUERY OK source="tasks" db=0.6ms idle=0.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300642, 1301392, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.040 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301335] 09:08:09.040 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301334] 09:08:09.041 [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" [300643, 1301393, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.041 [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" = ?) [1301334] 09:08:09.042 [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" = ?) [1301335] 09:08:09.042 [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] 09:08:09.042 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 09:08:09.042 [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 [] 09:08:09.043 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:08:09.043 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:08:09.043 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:09.043 [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 [] 09:08:09.044 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:09.044 [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 [] 09:08:09.044 [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 [] 09:08:09.044 [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 [] 09:08:09.044 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7c/2b/7c2bccaabfba2ef90c278ece93b62191ed7f1a2d174ad42df3befffbc5cf3ec7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:09.044 [debug] QUERY OK source="tasks" db=0.1ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300644, 1301394, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.045 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:08:09.045 [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 [] 09:08:09.045 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:08:09.046 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ce/f7/cef70bcb3b05ddfe17f285a00014c9a295cfb5489aa59caee1d551ad9a548921.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:09.047 [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" [300645, 1301395, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.049 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300646, 1301397, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.051 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300647, 1301398, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.053 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300648, 1301399, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.055 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300649, 1301400, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.057 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300650, 2720968, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.059 [debug] QUERY OK source="tasks" db=0.1ms idle=1.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300651, 52, ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z]] 09:08:09.059 [info] {"args":{"id":52},"id":300637,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2100813,"event":"job:stop","queue_time":505818,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:08:09.972 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "duration" => 650, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", "id" => "dpLkatTCfzU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dpLkatTCfzU", "playlist_index" => 1, "timestamp" => 1777540799, "title" => "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "upload_date" => "20260430"} 09:08:09.972 [debug] QUERY OK source="sources" db=0.2ms idle=913.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 (?)) [43] 09:08:09.973 [debug] QUERY OK source="sources" db=0.1ms idle=913.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" = ?) [43] 09:08:09.976 [debug] QUERY OK source="media_items" db=3.3ms idle=913.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 09:19:59Z], 43] 09:08:09.977 [debug] QUERY OK source="media_items" db=0.9ms idle=911.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "045d579c-d737-4e49-b304-f26cbd3227bf", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, false, false, 43, [], 98, ~U[2026-04-30 09:19:59Z], ~U[2026-04-30 14:08:09Z], ~U[2026-04-30 14:08:09Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, 43, ~U[2026-04-30 09:19:59Z]] 09:08:09.978 [debug] QUERY OK source="sources" db=0.1ms idle=23.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" = ?) [43] 09:08:09.978 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:09.979 [debug] QUERY OK source="media_items" db=0.2ms 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 [2844241] 09:08:09.979 [info] Kicking off download for media item #2844241 (dpLkatTCfzU) 09:08:09.980 [debug] Current batch of media processed. Will check again in 1000ms 09:08:10.696 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ce/f7/cef70bcb3b05ddfe17f285a00014c9a295cfb5489aa59caee1d551ad9a548921.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:10.696 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:10.697 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:10.697 [info] {"args":{"id":1301334},"id":300639,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1660310,"event":"job:stop","queue_time":35884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:10.703 [info] {"args":{"id":1301347},"id":300641,"meta":{},"system_time":1777558090703595285,"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"]} 09:08:10.703 [debug] QUERY OK source="media_items" db=0.1ms idle=725.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" = ?) [1301347] 09:08:10.704 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:10.704 [debug] QUERY OK source="sources" db=0.2ms idle=725.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" = ?) [52] 09:08:10.704 [debug] QUERY OK source="media_profiles" db=0.1ms idle=724.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] 09:08:10.705 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301347] 09:08:10.706 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 09:08:10.707 [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] 09:08:10.707 [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 [] 09:08:10.707 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:10.707 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:10.708 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:10.708 [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 [] 09:08:10.708 [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 [] 09:08:10.709 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f8/e7/f8e74c62cefd3c932a8df1c06fb478cea52b56af1b2d11b3ee37fc7a94c26c74.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:10.919 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7c/2b/7c2bccaabfba2ef90c278ece93b62191ed7f1a2d174ad42df3befffbc5cf3ec7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:10.920 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:10.920 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:10.920 [info] {"args":{"id":1301335},"id":300640,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1883218,"event":"job:stop","queue_time":35884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:10.926 [info] {"args":{"id":1301392},"id":300642,"meta":{},"system_time":1777558090926487600,"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"]} 09:08:10.926 [debug] QUERY OK source="media_items" db=0.1ms idle=218.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" = ?) [1301392] 09:08:10.926 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:10.927 [debug] QUERY OK source="sources" db=0.1ms idle=218.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" = ?) [52] 09:08:10.927 [debug] QUERY OK source="media_profiles" db=0.1ms idle=218.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] 09:08:10.927 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301392] 09:08:10.929 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 09:08:10.929 [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] 09:08:10.929 [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 [] 09:08:10.929 [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 [] 09:08:10.929 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:10.931 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:10.931 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:10.931 [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 [] 09:08:10.932 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/b1/deb1f339adee372a663d21ec0864096eea9b5a14dfacb9665135535f5f2eec69.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:10.981 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "duration" => 742, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", "id" => "3NYDU_L6dw4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3NYDU_L6dw4", "playlist_index" => 2, "timestamp" => 1777449571, "title" => "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "upload_date" => "20260429"} 09:08:10.981 [debug] QUERY OK source="sources" db=0.2ms idle=51.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 (?)) [43] 09:08:10.982 [debug] QUERY OK source="sources" db=0.1ms idle=50.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" = ?) [43] 09:08:10.985 [debug] QUERY OK source="media_items" db=3.2ms idle=50.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 07:59:31Z], 43] 09:08:10.986 [debug] QUERY OK source="media_items" db=0.8ms idle=53.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "4f2047a8-7096-48b1-8bbb-98fb56d3ecd5", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, false, false, 43, [], 98, ~U[2026-04-29 07:59:31Z], ~U[2026-04-30 14:08:10Z], ~U[2026-04-30 14:08:10Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, 43, ~U[2026-04-29 07:59:31Z]] 09:08:10.987 [debug] QUERY OK source="sources" db=0.1ms idle=30.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" = ?) [43] 09:08:10.987 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:10.987 [debug] QUERY OK source="media_items" db=0.1ms 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 [2836327] 09:08:10.987 [info] Kicking off download for media item #2836327 (3NYDU_L6dw4) 09:08:10.988 [debug] Current batch of media processed. Will check again in 1000ms 09:08:11.990 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "duration" => 703, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", "id" => "8winLglfLs4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8winLglfLs4", "playlist_index" => 3, "timestamp" => 1777368822, "title" => "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "upload_date" => "20260428"} 09:08:11.990 [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" IN (?)) [43] 09:08:11.990 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 09:08:11.994 [debug] QUERY OK source="media_items" db=3.2ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 09:33:42Z], 43] 09:08:11.995 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "fb71aa5c-6008-411d-b4b2-26fbdaa7fea1", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, false, false, 43, [], 98, ~U[2026-04-28 09:33:42Z], ~U[2026-04-30 14:08:11Z], ~U[2026-04-30 14:08:11Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, 43, ~U[2026-04-28 09:33:42Z]] 09:08:11.995 [debug] QUERY OK source="sources" db=0.1ms idle=37.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" = ?) [43] 09:08:11.996 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:11.996 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2828869] 09:08:11.996 [info] Kicking off download for media item #2828869 (8winLglfLs4) 09:08:11.998 [debug] Current batch of media processed. Will check again in 1000ms 09:08:12.488 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f8/e7/f8e74c62cefd3c932a8df1c06fb478cea52b56af1b2d11b3ee37fc7a94c26c74.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:12.488 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:12.488 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:12.489 [info] {"args":{"id":1301347},"id":300641,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1785040,"event":"job:stop","queue_time":1702941,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:12.496 [info] {"args":{"id":1301393},"id":300643,"meta":{},"system_time":1777558092496088789,"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"]} 09:08:12.496 [debug] QUERY OK source="media_items" db=0.1ms idle=500.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" = ?) [1301393] 09:08:12.496 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:12.496 [debug] QUERY OK source="sources" db=0.1ms idle=500.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" = ?) [52] 09:08:12.497 [debug] QUERY OK source="media_profiles" db=0.1ms idle=498.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] 09:08:12.497 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301393] 09:08:12.498 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301393] 09:08:12.498 [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] 09:08:12.499 [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 [] 09:08:12.499 [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 [] 09:08:12.499 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:12.500 [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 [] 09:08:12.500 [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 [] 09:08:12.500 [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 [] 09:08:12.500 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/3c/f23c93e317c98c3f58f1045be957deea03e1118979fca9e0ba6dda14f4b10e40.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:12.589 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/b1/deb1f339adee372a663d21ec0864096eea9b5a14dfacb9665135535f5f2eec69.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:12.590 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:12.590 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:12.590 [info] {"args":{"id":1301392},"id":300642,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1663709,"event":"job:stop","queue_time":1925892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:12.596 [info] {"args":{"id":1301394},"id":300644,"meta":{},"system_time":1777558092596412727,"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"]} 09:08:12.596 [debug] QUERY OK source="media_items" db=0.2ms idle=96.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" = ?) [1301394] 09:08:12.596 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:12.597 [debug] QUERY OK source="sources" db=0.2ms idle=96.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" = ?) [52] 09:08:12.597 [debug] QUERY OK source="media_profiles" db=0.1ms idle=97.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] 09:08:12.597 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301394] 09:08:12.598 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 09:08:12.599 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:08:12.599 [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 [] 09:08:12.599 [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 [] 09:08:12.599 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:12.600 [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 [] 09:08:12.600 [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 [] 09:08:12.600 [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 [] 09:08:12.600 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/25/0c250b97980b5776b6142373c5ac205876688503c2bf6cef71ee1b0f3a4cf2e2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:12.999 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "duration" => 1208, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", "id" => "vfwU_hmIBuY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vfwU_hmIBuY", "playlist_index" => 4, "timestamp" => 1777279766, "title" => "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "upload_date" => "20260427"} 09:08:12.999 [debug] QUERY OK source="sources" db=0.2ms idle=399.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 (?)) [43] 09:08:12.999 [debug] QUERY OK source="sources" db=0.1ms idle=399.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" = ?) [43] 09:08:13.003 [debug] QUERY OK source="media_items" db=3.2ms idle=399.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 08:49:26Z], 43] 09:08:13.005 [debug] QUERY OK source="media_items" db=1.4ms idle=403.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "5ffdeb27-3db7-4211-b6e9-e8120c99dc91", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, false, false, 43, [], 97, ~U[2026-04-27 08:49:26Z], ~U[2026-04-30 14:08:13Z], ~U[2026-04-30 14:08:13Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, 43, ~U[2026-04-27 08:49:26Z]] 09:08:13.005 [debug] QUERY OK source="sources" db=0.1ms idle=45.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" = ?) [43] 09:08:13.005 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:13.006 [debug] QUERY OK source="media_items" db=0.1ms 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 [2821216] 09:08:13.006 [info] Kicking off download for media item #2821216 (vfwU_hmIBuY) 09:08:13.007 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "duration" => 641, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", "id" => "1F7Y7lRCJio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1F7Y7lRCJio", "playlist_index" => 5, "timestamp" => 1777276004, "title" => "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "upload_date" => "20260427"} 09:08:13.007 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 09:08:13.008 [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" = ?) [43] 09:08:13.011 [debug] QUERY OK source="media_items" db=3.3ms idle=2.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 07:46:44Z], 43] 09:08:13.012 [debug] QUERY OK source="media_items" db=0.9ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "854fa45d-39ba-47e0-a4f0-349628fe4f5c", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, false, false, 43, [], 97, ~U[2026-04-27 07:46:44Z], ~U[2026-04-30 14:08:13Z], ~U[2026-04-30 14:08:13Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, 43, ~U[2026-04-27 07:46:44Z]] 09:08:13.013 [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" = ?) [43] 09:08:13.013 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:13.013 [debug] QUERY OK source="media_items" db=0.1ms 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 [2820987] 09:08:13.013 [info] Kicking off download for media item #2820987 (1F7Y7lRCJio) 09:08:13.014 [debug] Current batch of media processed. Will check again in 1000ms 09:08:14.016 [debug] Current batch of media processed. Will check again in 1000ms 09:08:14.374 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/3c/f23c93e317c98c3f58f1045be957deea03e1118979fca9e0ba6dda14f4b10e40.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:14.375 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:14.375 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:14.375 [info] {"args":{"id":1301393},"id":300643,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1879122,"event":"job:stop","queue_time":3495003,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:14.381 [info] {"args":{"id":1301395},"id":300645,"meta":{},"system_time":1777558094381490851,"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"]} 09:08:14.381 [debug] QUERY OK source="media_items" db=0.1ms idle=1367.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" = ?) [1301395] 09:08:14.381 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:14.382 [debug] QUERY OK source="sources" db=0.1ms idle=1367.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" = ?) [52] 09:08:14.382 [debug] QUERY OK source="media_profiles" db=0.1ms idle=421.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] 09:08:14.382 [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 [1301395] 09:08:14.384 [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" = ?) [1301395] 09:08:14.384 [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] 09:08:14.384 [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 [] 09:08:14.384 [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 [] 09:08:14.384 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:14.386 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:14.386 [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 [] 09:08:14.386 [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 [] 09:08:14.386 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/0a/b50a0414048f708e70c7cb607bb708b01bed669a6ffd83b670a7b6943b19f6a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:14.537 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/25/0c250b97980b5776b6142373c5ac205876688503c2bf6cef71ee1b0f3a4cf2e2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:14.537 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:14.537 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:14.538 [info] {"args":{"id":1301394},"id":300644,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1941140,"event":"job:stop","queue_time":3595892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:14.544 [info] {"args":{"id":1301397},"id":300646,"meta":{},"system_time":1777558094544546751,"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"]} 09:08:14.545 [debug] QUERY OK source="media_items" db=0.2ms idle=158.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" = ?) [1301397] 09:08:14.545 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:14.545 [debug] QUERY OK source="sources" db=0.1ms idle=158.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" = ?) [52] 09:08:14.545 [debug] QUERY OK source="media_profiles" db=0.1ms idle=159.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] 09:08:14.546 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301397] 09:08:14.547 [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" = ?) [1301397] 09:08:14.547 [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] 09:08:14.547 [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 [] 09:08:14.547 [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 [] 09:08:14.548 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:14.548 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:14.548 [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 [] 09:08:14.549 [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 [] 09:08:14.549 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/7e/b97ed9a48f03817347b1995e630f84b0d68dc90ed950873ab5bb453b4983401e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:15.017 [debug] Current batch of media processed. Will check again in 1000ms 09:08:15.927 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/0a/b50a0414048f708e70c7cb607bb708b01bed669a6ffd83b670a7b6943b19f6a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:15.928 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:15.928 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:15.928 [info] {"args":{"id":1301395},"id":300645,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1546742,"event":"job:stop","queue_time":5380939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:15.934 [info] {"args":{"id":1301398},"id":300647,"meta":{},"system_time":1777558095934756152,"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"]} 09:08:15.935 [debug] QUERY OK source="media_items" db=0.1ms idle=1386.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" = ?) [1301398] 09:08:15.935 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:15.935 [debug] QUERY OK source="sources" db=0.2ms idle=1386.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" = ?) [52] 09:08:15.935 [debug] QUERY OK source="media_profiles" db=0.1ms idle=972.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] 09:08:15.936 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301398] 09:08:15.938 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301398] 09:08:15.938 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:08:15.938 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:15.938 [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 [] 09:08:15.938 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:15.940 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:15.940 [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 [] 09:08:15.940 [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 [] 09:08:15.940 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/1f/981ffc3f4955d693c96f9a41e0744c4b4c6ca39a8e548d08eda0292aeebbda70.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:16.018 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "duration" => 1546, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", "id" => "Z6n5r6Y47n8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "playlist_index" => 6, "timestamp" => 1777105961, "title" => "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "upload_date" => "20260425"} 09:08:16.018 [debug] QUERY OK source="sources" db=0.2ms idle=79.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 (?)) [43] 09:08:16.019 [debug] QUERY OK source="sources" db=0.1ms idle=78.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" = ?) [43] 09:08:16.022 [debug] QUERY OK source="media_items" db=3.2ms idle=78.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 08:32:41Z], 43] 09:08:16.024 [debug] QUERY OK source="media_items" db=1.3ms idle=81.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "1e3f4039-8ab0-4058-9aef-bd96251301f2", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-25 08:32:41Z], ~U[2026-04-30 14:08:16Z], ~U[2026-04-30 14:08:16Z], "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, 43, ~U[2026-04-25 08:32:41Z]] 09:08:16.024 [debug] QUERY OK source="sources" db=0.2ms idle=60.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" = ?) [43] 09:08:16.024 [debug] QUERY OK source="media_profiles" db=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] 09:08:16.025 [debug] QUERY OK source="media_items" db=0.2ms 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 [2805841] 09:08:16.025 [debug] Current batch of media processed. Will check again in 1000ms 09:08:16.247 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/7e/b97ed9a48f03817347b1995e630f84b0d68dc90ed950873ab5bb453b4983401e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:16.247 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:16.247 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:16.248 [info] {"args":{"id":1301397},"id":300646,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1703071,"event":"job:stop","queue_time":5543918,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:16.254 [info] {"args":{"id":1301399},"id":300648,"meta":{},"system_time":1777558096254606605,"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"]} 09:08:16.255 [debug] QUERY OK source="media_items" db=0.1ms idle=230.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" = ?) [1301399] 09:08:16.255 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:16.255 [debug] QUERY OK source="sources" db=0.1ms idle=230.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" = ?) [52] 09:08:16.255 [debug] QUERY OK source="media_profiles" db=0.1ms idle=230.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] 09:08:16.256 [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 [1301399] 09:08:16.257 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301399] 09:08:16.257 [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] 09:08:16.257 [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 [] 09:08:16.257 [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 [] 09:08:16.258 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:16.259 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:16.259 [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 [] 09:08:16.259 [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 [] 09:08:16.259 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4c/5d/4c5d276f92cd3c0c6d11f3bfa8d9fb24bad4e36ac238375e89227d13c6d80887.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:17.026 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "duration" => 575, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", "id" => "f6L4BufLrho", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f6L4BufLrho", "playlist_index" => 7, "timestamp" => 1777021280, "title" => "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "upload_date" => "20260424"} 09:08:17.026 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=768.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 (?)) [43] 09:08:17.027 [debug] QUERY OK source="sources" db=0.1ms idle=768.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" = ?) [43] 09:08:17.030 [debug] QUERY OK source="media_items" db=3.2ms idle=768.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 09:01:20Z], 43] 09:08:17.032 [debug] QUERY OK source="media_items" db=0.7ms idle=771.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "f6df1324-798b-42a7-8ecb-4258089b2c2c", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, false, false, 43, [], 98, ~U[2026-04-24 09:01:20Z], ~U[2026-04-30 14:08:17Z], ~U[2026-04-30 14:08:17Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, 43, ~U[2026-04-24 09:01:20Z]] 09:08:17.032 [debug] QUERY OK source="sources" db=0.1ms idle=67.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" = ?) [43] 09:08:17.032 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:17.032 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2798388] 09:08:17.032 [info] Kicking off download for media item #2798388 (f6L4BufLrho) 09:08:17.034 [debug] Current batch of media processed. Will check again in 1000ms 09:08:17.659 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/1f/981ffc3f4955d693c96f9a41e0744c4b4c6ca39a8e548d08eda0292aeebbda70.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:17.659 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:17.659 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:17.659 [info] {"args":{"id":1301398},"id":300647,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1724587,"event":"job:stop","queue_time":6933943,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:17.665 [info] {"args":{"id":1301400},"id":300649,"meta":{},"system_time":1777558097665571803,"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"]} 09:08:17.665 [debug] QUERY OK source="media_items" db=0.1ms idle=633.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" = ?) [1301400] 09:08:17.666 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:17.666 [debug] QUERY OK source="sources" db=0.1ms idle=633.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" = ?) [52] 09:08:17.666 [debug] QUERY OK source="media_profiles" db=0.1ms idle=632.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] 09:08:17.667 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301400] 09:08:17.668 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301400] 09:08:17.669 [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] 09:08:17.669 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:17.669 [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 [] 09:08:17.669 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:17.670 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:17.670 [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 [] 09:08:17.670 [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 [] 09:08:17.671 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/97/54/97541117588fd5b412b81324de60313c20d9c7c4589ad0ec898d7ea7b19dd1e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:18.032 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4c/5d/4c5d276f92cd3c0c6d11f3bfa8d9fb24bad4e36ac238375e89227d13c6d80887.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:18.032 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:18.033 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:18.033 [info] {"args":{"id":1301399},"id":300648,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1778570,"event":"job:stop","queue_time":7253957,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:18.034 [debug] Current batch of media processed. Will check again in 1000ms 09:08:18.039 [info] {"args":{"id":2720968},"id":300650,"meta":{},"system_time":1777558098039547141,"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"]} 09:08:18.039 [debug] QUERY OK source="media_items" db=0.1ms idle=368.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" = ?) [2720968] 09:08:18.040 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:08:18.040 [debug] QUERY OK source="sources" db=0.1ms idle=369.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" = ?) [52] 09:08:18.040 [debug] QUERY OK source="media_profiles" db=0.2ms idle=74.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] 09:08:18.041 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 09:08:18.042 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [2720968] 09:08:18.042 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:18.043 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:18.043 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:08:18.043 [debug] Running yt-dlp command for action: get_downloadable_status 09:08:18.044 [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 [] 09:08:18.044 [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 [] 09:08:18.044 [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 [] 09:08:18.044 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/df/afdff42ae3139beefa3415eb7e64830032aa2948f766c262b6e11d03ffb408bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:08:19.036 [debug] Current batch of media processed. Will check again in 1000ms 09:08:19.260 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/97/54/97541117588fd5b412b81324de60313c20d9c7c4589ad0ec898d7ea7b19dd1e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:19.260 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:19.260 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:19.260 [info] {"args":{"id":1301400},"id":300649,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1594875,"event":"job:stop","queue_time":8664912,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:19.595 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/df/afdff42ae3139beefa3415eb7e64830032aa2948f766c262b6e11d03ffb408bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:08:19.595 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:19.595 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:08:19.595 [info] {"args":{"id":2720968},"id":300650,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1555727,"event":"job:stop","queue_time":9038948,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:08:20.037 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "duration" => 1597, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", "id" => "4MYxtL0AW2g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4MYxtL0AW2g", "playlist_index" => 8, "timestamp" => 1776935277, "title" => "Ubuntu 26.04: there are some big changes in there!", "upload_date" => "20260423"} 09:08:20.037 [debug] QUERY OK source="sources" db=0.3ms idle=776.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 (?)) [43] 09:08:20.038 [debug] QUERY OK source="sources" db=0.1ms idle=770.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" = ?) [43] 09:08:20.041 [debug] QUERY OK source="media_items" db=3.5ms idle=442.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 09:07:57Z], 43] 09:08:20.043 [debug] QUERY OK source="media_items" db=1.1ms idle=440.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "f89472b5-4567-4c7a-b3d9-5cc743287605", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, false, false, 43, [], 97, ~U[2026-04-23 09:07:57Z], ~U[2026-04-30 14:08:20Z], ~U[2026-04-30 14:08:20Z], "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, 43, ~U[2026-04-23 09:07:57Z]] 09:08:20.043 [debug] QUERY OK source="sources" db=0.2ms idle=74.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" = ?) [43] 09:08:20.044 [debug] QUERY OK source="media_profiles" db=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] 09:08:20.044 [debug] QUERY OK source="media_items" db=0.2ms 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 [2790678] 09:08:20.044 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "duration" => 618, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", "id" => "BHoJYgBFA4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BHoJYgBFA4c", "playlist_index" => 9, "timestamp" => 1776928984, "title" => "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "upload_date" => "20260423"} 09:08:20.045 [debug] QUERY OK source="sources" db=0.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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 09:08:20.045 [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" = ?) [43] 09:08:20.049 [debug] QUERY OK source="media_items" db=3.2ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 07:23:04Z], 43] 09:08:20.050 [debug] QUERY OK source="media_items" db=0.9ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "614cd1fa-f4b9-4686-8570-50c8f012dd57", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, false, false, 43, [], 97, ~U[2026-04-23 07:23:04Z], ~U[2026-04-30 14:08:20Z], ~U[2026-04-30 14:08:20Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, 43, ~U[2026-04-23 07:23:04Z]] 09:08:20.050 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 09:08:20.051 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 09:08:20.051 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2790072] 09:08:20.051 [info] Kicking off download for media item #2790072 (BHoJYgBFA4c) 09:08:20.053 [debug] Current batch of media processed. Will check again in 1000ms 09:08:21.054 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "duration" => 487, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", "id" => "0SzaAJvLL_g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0SzaAJvLL_g", "playlist_index" => 10, "timestamp" => 1776850199, "title" => "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "upload_date" => "20260422"} 09:08:21.054 [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" IN (?)) [43] 09:08:21.054 [debug] QUERY OK source="sources" db=0.1ms idle=1003.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" = ?) [43] 09:08:21.058 [debug] QUERY OK source="media_items" db=3.2ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 09:29:59Z], 43] 09:08:21.059 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "519a5f03-3fb9-4df1-b113-fdb0b06173ef", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, false, false, 43, [], 98, ~U[2026-04-22 09:29:59Z], ~U[2026-04-30 14:08:21Z], ~U[2026-04-30 14:08:21Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, 43, ~U[2026-04-22 09:29:59Z]] 09:08:21.059 [debug] QUERY OK source="sources" db=0.2ms idle=89.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" = ?) [43] 09:08:21.060 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:21.060 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2783182] 09:08:21.060 [info] Kicking off download for media item #2783182 (0SzaAJvLL_g) 09:08:21.062 [debug] Current batch of media processed. Will check again in 1000ms 09:08:22.063 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "duration" => 467, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", "id" => "BQ2_0v3ZS5g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "playlist_index" => 11, "timestamp" => 1776758844, "title" => "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "upload_date" => "20260421"} 09:08:22.063 [debug] QUERY OK source="sources" db=0.2ms idle=1003.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 (?)) [43] 09:08:22.064 [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" = ?) [43] 09:08:22.067 [debug] QUERY OK source="media_items" db=3.6ms idle=1003.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 08:07:24Z], 43] 09:08:22.069 [debug] QUERY OK source="media_items" db=0.7ms idle=1006.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "f31938bb-b834-4e01-9327-e6faa666a644", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, false, false, 43, [], 98, ~U[2026-04-21 08:07:24Z], ~U[2026-04-30 14:08:22Z], ~U[2026-04-30 14:08:22Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, 43, ~U[2026-04-21 08:07:24Z]] 09:08:22.069 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [43] 09:08:22.069 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:22.070 [debug] QUERY OK source="media_items" db=0.2ms 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 [2775036] 09:08:22.070 [info] Kicking off download for media item #2775036 (BQ2_0v3ZS5g) 09:08:22.071 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "duration" => 1309, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", "id" => "eUETENsa3B4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eUETENsa3B4", "playlist_index" => 12, "timestamp" => 1776677857, "title" => "Patroncast S06E16 - Work Life balance", "upload_date" => "20260420"} 09:08:22.072 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 09:08:22.072 [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" = ?) [43] 09:08:22.075 [debug] QUERY OK source="media_items" db=3.0ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 09:37:37Z], 43] 09:08:22.076 [debug] QUERY OK source="media_items" db=0.4ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "fb4fff1f-2327-47cc-b462-da3fc573e143", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, false, false, 43, [], 97, ~U[2026-04-20 09:37:37Z], ~U[2026-04-30 14:08:22Z], ~U[2026-04-30 14:08:22Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, 43, ~U[2026-04-20 09:37:37Z]] 09:08:22.076 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 09:08:22.077 [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] 09:08:22.077 [debug] QUERY OK source="media_items" db=0.1ms 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 [2767565] 09:08:22.077 [info] Kicking off download for media item #2767565 (eUETENsa3B4) 09:08:22.078 [debug] Current batch of media processed. Will check again in 1000ms 09:08:23.079 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "duration" => 538, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", "id" => "Z4f1eHVqj0Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "playlist_index" => 13, "timestamp" => 1776674621, "title" => "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "upload_date" => "20260420"} 09:08:23.079 [debug] QUERY OK source="sources" db=0.1ms idle=1002.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 (?)) [43] 09:08:23.079 [debug] QUERY OK source="sources" db=0.0ms idle=1002.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" = ?) [43] 09:08:23.083 [debug] QUERY OK source="media_items" db=3.2ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 08:43:41Z], 43] 09:08:23.084 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "d56e5407-8fdb-4c62-b660-e0dae8e03272", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, false, false, 43, [], 97, ~U[2026-04-20 08:43:41Z], ~U[2026-04-30 14:08:23Z], ~U[2026-04-30 14:08:23Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, 43, ~U[2026-04-20 08:43:41Z]] 09:08:23.084 [debug] QUERY OK source="sources" db=0.1ms idle=111.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" = ?) [43] 09:08:23.084 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:08:23.085 [debug] QUERY OK source="media_items" db=0.1ms 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 [2767301] 09:08:23.085 [info] Kicking off download for media item #2767301 (Z4f1eHVqj0Y) 09:08:23.086 [debug] Current batch of media processed. Will check again in 1000ms 09:08:24.087 [debug] Current batch of media processed. Will check again in 1000ms 09:08:25.088 [debug] Current batch of media processed. Will check again in 1000ms 09:08:26.089 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "duration" => 1525, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", "id" => "IkAld223VYI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IkAld223VYI", "playlist_index" => 14, "timestamp" => 1776503681, "title" => "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "upload_date" => "20260418"} 09:08:26.090 [debug] QUERY OK source="sources" db=0.2ms idle=1108.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 (?)) [43] 09:08:26.090 [debug] QUERY OK source="sources" db=0.1ms idle=1109.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" = ?) [43] 09:08:26.094 [debug] QUERY OK source="media_items" db=3.6ms idle=1109.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 09:14:41Z], 43] 09:08:26.096 [debug] QUERY OK source="media_items" db=1.3ms idle=1113.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "a88022a7-9044-40a3-8fdc-f821ee4a8705", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-18 09:14:41Z], ~U[2026-04-30 14:08:26Z], ~U[2026-04-30 14:08:26Z], "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, 43, ~U[2026-04-18 09:14:41Z]] 09:08:26.096 [debug] QUERY OK source="sources" db=0.1ms idle=120.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" = ?) [43] 09:08:26.096 [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] 09:08:26.097 [debug] QUERY OK source="media_items" db=0.2ms 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 [2751495] 09:08:26.097 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "duration" => 688, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", "id" => "ZNMeTQIukQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZNMeTQIukQs", "playlist_index" => 15, "timestamp" => 1776411839, "title" => "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "upload_date" => "20260417"} 09:08:26.097 [debug] QUERY OK source="sources" db=0.4ms 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" IN (?)) [43] 09:08:26.097 [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" = ?) [43] 09:08:26.101 [debug] QUERY OK source="media_items" db=2.9ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 07:43:59Z], 43] 09:08:26.102 [debug] QUERY OK source="media_items" db=0.8ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "f59ea22c-ca50-415a-8acb-6e3b1e041107", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, false, false, 43, [], 98, ~U[2026-04-17 07:43:59Z], ~U[2026-04-30 14:08:26Z], ~U[2026-04-30 14:08:26Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, 43, ~U[2026-04-17 07:43:59Z]] 09:08:26.102 [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" = ?) [43] 09:08:26.102 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:08:26.103 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2743172] 09:08:26.103 [info] Kicking off download for media item #2743172 (ZNMeTQIukQs) 09:08:26.104 [debug] Current batch of media processed. Will check again in 1000ms 09:08:27.105 [debug] Current batch of media processed. Will check again in 1000ms 09:08:28.106 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "duration" => 1341, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", "id" => "4NdlRlie-A8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4NdlRlie-A8", "playlist_index" => 16, "timestamp" => 1776346462, "title" => "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "upload_date" => "20260416"} 09:08:28.107 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=129.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 (?)) [43] 09:08:28.107 [debug] QUERY OK source="sources" db=0.0ms idle=126.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" = ?) [43] 09:08:28.111 [debug] QUERY OK source="media_items" db=3.2ms idle=126.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 13:34:22Z], 43] 09:08:28.112 [debug] QUERY OK source="media_items" db=0.9ms idle=130.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "130c771b-f904-4e2a-912c-d0be5f3cf5fe", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, false, false, 43, [], 97, ~U[2026-04-16 13:34:22Z], ~U[2026-04-30 14:08:28Z], ~U[2026-04-30 14:08:28Z], "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, 43, ~U[2026-04-16 13:34:22Z]] 09:08:28.112 [debug] QUERY OK source="sources" db=0.1ms idle=131.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" = ?) [43] 09:08:28.113 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:28.113 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2739293] 09:08:28.113 [info] Kicking off download for media item #2739293 (4NdlRlie-A8) 09:08:28.114 [debug] Current batch of media processed. Will check again in 1000ms 09:08:29.115 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "duration" => 664, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", "id" => "k9VpY6M5Wfs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "playlist_index" => 17, "timestamp" => 1776331242, "title" => "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "upload_date" => "20260416"} 09:08:29.115 [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" IN (?)) [43] 09:08:29.116 [debug] QUERY OK source="sources" db=0.1ms idle=1003.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" = ?) [43] 09:08:29.119 [debug] QUERY OK source="media_items" db=3.1ms idle=1002.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 09:20:42Z], 43] 09:08:29.120 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "1150c071-7147-4d8a-8788-4e6c10ebaabe", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, false, false, 43, [], 97, ~U[2026-04-16 09:20:42Z], ~U[2026-04-30 14:08:29Z], ~U[2026-04-30 14:08:29Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, 43, ~U[2026-04-16 09:20:42Z]] 09:08:29.121 [debug] QUERY OK source="sources" db=0.2ms idle=140.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" = ?) [43] 09:08:29.121 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:08:29.121 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2739295] 09:08:29.121 [info] Kicking off download for media item #2739295 (k9VpY6M5Wfs) 09:08:29.122 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "duration" => 517, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", "id" => "jg32Zpd7KpU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jg32Zpd7KpU", "playlist_index" => 18, "timestamp" => 1776242206, "title" => "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "upload_date" => "20260415"} 09:08:29.123 [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" IN (?)) [43] 09:08:29.123 [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" = ?) [43] 09:08:29.126 [debug] QUERY OK source="media_items" db=2.8ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 08:36:46Z], 43] 09:08:29.145 [debug] QUERY OK source="media_items" db=19.0ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "e7508ac9-d7ba-4679-a42e-c36be61dab08", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, false, false, 43, [], 98, ~U[2026-04-15 08:36:46Z], ~U[2026-04-30 14:08:29Z], ~U[2026-04-30 14:08:29Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, 43, ~U[2026-04-15 08:36:46Z]] 09:08:29.146 [debug] QUERY OK source="sources" db=0.3ms idle=23.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" = ?) [43] 09:08:29.146 [debug] QUERY OK source="media_profiles" db=0.2ms idle=23.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] 09:08:29.147 [debug] QUERY OK source="media_items" db=0.1ms idle=23.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 [2734222] 09:08:29.147 [info] Kicking off download for media item #2734222 (jg32Zpd7KpU) 09:08:29.149 [debug] Current batch of media processed. Will check again in 1000ms 09:08:30.150 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "duration" => 663, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", "id" => "WdokVKRBi38", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WdokVKRBi38", "playlist_index" => 19, "timestamp" => 1776158490, "title" => "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "upload_date" => "20260414"} 09:08:30.150 [debug] QUERY OK source="sources" db=0.3ms idle=1004.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 (?)) [43] 09:08:30.151 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 09:08:30.154 [debug] QUERY OK source="media_items" db=3.1ms idle=1004.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 09:21:30Z], 43] 09:08:30.160 [debug] QUERY OK source="media_items" db=4.9ms idle=1005.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "7acf8066-97dd-4380-ab6a-6a0231940e9c", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, false, false, 43, [], 98, ~U[2026-04-14 09:21:30Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, 43, ~U[2026-04-14 09:21:30Z]] 09:08:30.160 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.160 [debug] QUERY OK source="media_profiles" db=0.1ms idle=9.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] 09:08:30.161 [debug] QUERY OK source="media_items" db=0.1ms 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 [2726933] 09:08:30.161 [info] Kicking off download for media item #2726933 (WdokVKRBi38) 09:08:30.162 [debug] Current batch of media processed. Will check again in 1000ms 09:08:30.726 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/25/67/2567bbfdfc30f3fbf58fa3bb042248c3e539f7db6363977bc384fb393c15fe71.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/23/c0/23c0a439ea3101812852db2dfcf6b687457ccbcced81507a9266c6aedd90822f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:08:30.727 [debug] Gracefully stopping file follower 09:08:30.727 [debug] QUERY OK source="sources" db=0.1ms idle=567.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 (?)) [43] 09:08:30.727 [debug] QUERY OK source="sources" db=0.0ms idle=567.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" = ?) [43] 09:08:30.731 [debug] QUERY OK source="media_items" db=3.2ms idle=567.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 09:19:59Z], 43] 09:08:30.734 [debug] QUERY OK source="media_items" db=2.5ms idle=570.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "44ae7ef1-1a14-4bce-91d6-acced59cb1a6", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, false, false, 43, [], 98, ~U[2026-04-30 09:19:59Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, 43, ~U[2026-04-30 09:19:59Z]] 09:08:30.734 [debug] QUERY OK source="sources" db=0.1ms idle=571.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" = ?) [43] 09:08:30.737 [debug] QUERY OK source="media_items" db=3.0ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 07:59:31Z], 43] 09:08:30.738 [debug] QUERY OK source="media_items" db=0.8ms idle=9.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "0235a66d-c8a0-4818-b1a7-b5c5dfcebe17", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, false, false, 43, [], 98, ~U[2026-04-29 07:59:31Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, 43, ~U[2026-04-29 07:59:31Z]] 09:08:30.739 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.742 [debug] QUERY OK source="media_items" db=2.9ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 09:33:42Z], 43] 09:08:30.743 [debug] QUERY OK source="media_items" db=0.7ms idle=8.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "34c92c61-0e61-4948-abb8-3fbc0bc5148f", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, false, false, 43, [], 98, ~U[2026-04-28 09:33:42Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, 43, ~U[2026-04-28 09:33:42Z]] 09:08:30.744 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.747 [debug] QUERY OK source="media_items" db=2.8ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 08:49:26Z], 43] 09:08:30.747 [debug] QUERY OK source="media_items" db=0.5ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "ab8b2f87-36b9-467d-8c55-ac4a4c72ae40", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, false, false, 43, [], 97, ~U[2026-04-27 08:49:26Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, 43, ~U[2026-04-27 08:49:26Z]] 09:08:30.748 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.751 [debug] QUERY OK source="media_items" db=2.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 07:46:44Z], 43] 09:08:30.752 [debug] QUERY OK source="media_items" db=0.8ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "96a06145-7e2e-4c1b-adf3-bc2e14be261e", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, false, false, 43, [], 97, ~U[2026-04-27 07:46:44Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, 43, ~U[2026-04-27 07:46:44Z]] 09:08:30.753 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.756 [debug] QUERY OK source="media_items" db=2.9ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 08:32:41Z], 43] 09:08:30.757 [debug] QUERY OK source="media_items" db=1.4ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "01458c8c-2262-4166-bc3e-93dfca0f5c18", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-25 08:32:41Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, 43, ~U[2026-04-25 08:32:41Z]] 09:08:30.758 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.761 [debug] QUERY OK source="media_items" db=2.7ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 09:01:20Z], 43] 09:08:30.762 [debug] QUERY OK source="media_items" db=0.7ms idle=8.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "a9dc7624-d999-41ff-9048-33a14ac94795", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, false, false, 43, [], 98, ~U[2026-04-24 09:01:20Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, 43, ~U[2026-04-24 09:01:20Z]] 09:08:30.762 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.765 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 09:07:57Z], 43] 09:08:30.767 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "10ce129c-dc4a-44f4-96d3-f392f58af53e", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, false, false, 43, [], 97, ~U[2026-04-23 09:07:57Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, 43, ~U[2026-04-23 09:07:57Z]] 09:08:30.767 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.770 [debug] QUERY OK source="media_items" db=2.7ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 07:23:04Z], 43] 09:08:30.775 [debug] QUERY OK source="media_items" db=4.9ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "9e6918df-2cfb-4d41-8a47-5e7c69b78f20", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, false, false, 43, [], 97, ~U[2026-04-23 07:23:04Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, 43, ~U[2026-04-23 07:23:04Z]] 09:08:30.776 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 09:08:30.779 [debug] QUERY OK source="media_items" db=2.8ms idle=9.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 09:29:59Z], 43] 09:08:30.780 [debug] QUERY OK source="media_items" db=0.7ms idle=11.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "25847d93-4152-4e07-a2cd-ce04573d04a7", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, false, false, 43, [], 98, ~U[2026-04-22 09:29:59Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, 43, ~U[2026-04-22 09:29:59Z]] 09:08:30.780 [debug] QUERY OK source="sources" db=0.4ms idle=9.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" = ?) [43] 09:08:30.783 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 08:07:24Z], 43] 09:08:30.784 [debug] QUERY OK source="media_items" db=0.7ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "02bd6fd3-fc62-47fe-aa0b-94669125c330", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, false, false, 43, [], 98, ~U[2026-04-21 08:07:24Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, 43, ~U[2026-04-21 08:07:24Z]] 09:08:30.785 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 09:08:30.788 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 09:37:37Z], 43] 09:08:30.789 [debug] QUERY OK source="media_items" db=0.4ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "5ff6485a-75d0-472e-bbf9-cb91a5cae9f7", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, false, false, 43, [], 97, ~U[2026-04-20 09:37:37Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, 43, ~U[2026-04-20 09:37:37Z]] 09:08:30.789 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.792 [debug] QUERY OK source="media_items" db=2.7ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 08:43:41Z], 43] 09:08:30.793 [debug] QUERY OK source="media_items" db=0.6ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "cf172b05-1a49-4359-85d5-d3344ff7e394", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, false, false, 43, [], 97, ~U[2026-04-20 08:43:41Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, 43, ~U[2026-04-20 08:43:41Z]] 09:08:30.794 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.797 [debug] QUERY OK source="media_items" db=2.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 09:14:41Z], 43] 09:08:30.798 [debug] QUERY OK source="media_items" db=1.3ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "c8c07bf9-dd56-4e56-b788-e2e9d9e59e0a", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-18 09:14:41Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, 43, ~U[2026-04-18 09:14:41Z]] 09:08:30.799 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.802 [debug] QUERY OK source="media_items" db=3.0ms idle=5.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 07:43:59Z], 43] 09:08:30.803 [debug] QUERY OK source="media_items" db=0.6ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "2aadacb2-3968-4039-b0bf-d383b73158f6", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, false, false, 43, [], 98, ~U[2026-04-17 07:43:59Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, 43, ~U[2026-04-17 07:43:59Z]] 09:08:30.803 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.806 [debug] QUERY OK source="media_items" db=2.8ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 13:34:22Z], 43] 09:08:30.808 [debug] QUERY OK source="media_items" db=0.8ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "b65dc64f-749a-4a93-b965-480016be3eeb", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, false, false, 43, [], 97, ~U[2026-04-16 13:34:22Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, 43, ~U[2026-04-16 13:34:22Z]] 09:08:30.808 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 09:08:30.811 [debug] QUERY OK source="media_items" db=2.7ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 09:20:42Z], 43] 09:08:30.812 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "e78e2f2e-8e3c-4d36-b302-d1562d721918", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, false, false, 43, [], 97, ~U[2026-04-16 09:20:42Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, 43, ~U[2026-04-16 09:20:42Z]] 09:08:30.813 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.816 [debug] QUERY OK source="media_items" db=2.8ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 08:36:46Z], 43] 09:08:30.817 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "2175a591-4722-41af-bd28-d9361589af05", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, false, false, 43, [], 98, ~U[2026-04-15 08:36:46Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, 43, ~U[2026-04-15 08:36:46Z]] 09:08:30.817 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.820 [debug] QUERY OK source="media_items" db=2.7ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 09:21:30Z], 43] 09:08:30.821 [debug] QUERY OK source="media_items" db=0.6ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "f7bccd8a-5f99-4180-9f87-618875ff4bb6", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, false, false, 43, [], 98, ~U[2026-04-14 09:21:30Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, 43, ~U[2026-04-14 09:21:30Z]] 09:08:30.822 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:08:30.825 [debug] QUERY OK source="media_items" db=2.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 08:37:42Z], 43] 09:08:30.825 [debug] QUERY OK source="media_items" db=0.6ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "08649747-a23f-4b45-8b18-9523c3ae4ca0", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, false, false, 43, [], 97, ~U[2026-04-13 08:37:42Z], ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, 43, ~U[2026-04-13 08:37:42Z]] 09:08:30.826 [debug] QUERY OK source="sources" db=0.4ms idle=5.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z], 43] 09:08:30.831 [debug] QUERY OK source="media_items" db=4.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 INNER JOIN "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")))) [43] 09:08:30.970 [debug] QUERY OK source="media_items" db=3.4ms idle=1.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")))) [43] 09:08:30.971 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 09:08:30.972 [debug] QUERY OK source="tasks" db=0.2ms idle=4.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300652, 43, ~U[2026-04-30 14:08:30Z], ~U[2026-04-30 14:08:30Z]] 09:08:30.973 [info] {"args":{"id":43},"id":300565,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":24015225,"event":"job:stop","queue_time":624283,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:08:36.248 [info] {"source":"oban","duration":3682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:00.847 [info] {"source":"oban","duration":174,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:09:06.252 [info] {"source":"oban","duration":3631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:36.256 [info] {"source":"oban","duration":3367,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:51.076 [info] {"args":{"id":2821216},"id":294831,"meta":{},"system_time":1777558191076621865,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:09:51.077 [debug] QUERY OK source="media_items" db=0.4ms idle=1095.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" = ?) [2821216] 09:09:51.077 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:09:51.077 [debug] QUERY OK source="sources" db=0.1ms idle=1096.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" = ?) [43] 09:09:51.078 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1008.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] 09:09:51.078 [debug] QUERY OK source="media_items" db=0.3ms 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 [2821216] 09:09:51.081 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [2821216] 09:09:51.081 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:09:51.082 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 09:09:51.082 [debug] QUERY OK source="settings" db=0.1ms idle=4.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 [] 09:09:51.082 [debug] Running yt-dlp command for action: get_downloadable_status 09:09:51.083 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:09:51.083 [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 [] 09:09:51.084 [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 [] 09:09:51.084 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=vfwU_hmIBuY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/10/ca/10cabcba8a13ac92e0da1f7e62212abb902f7e37e405d4c982a51a334696d184.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:09:52.905 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=vfwU_hmIBuY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/10/ca/10cabcba8a13ac92e0da1f7e62212abb902f7e37e405d4c982a51a334696d184.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] vfwU_hmIBuY: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:09:52.905 [error] yt-dlp download error for media item #2821216: "ERROR: [youtube] vfwU_hmIBuY: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:09:52.905 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2821216},"id":294831,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1828819,"event":"job:exception","queue_time":18193,"attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:10:00.848 [info] {"source":"oban","duration":135,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:10:06.260 [info] {"source":"oban","duration":3562,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:10:36.264 [info] {"source":"oban","duration":3432,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:00.849 [info] {"source":"oban","duration":244,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:11:04.170 [info] {"args":{"id":37},"id":300566,"meta":{},"system_time":1777558264169999998,"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"]} 09:11:04.170 [debug] QUERY OK source="sources" db=0.5ms idle=189.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" = ?) [37] 09:11:04.171 [debug] QUERY OK source="settings" db=0.1ms idle=189.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:11:04.173 [debug] QUERY OK source="media_items" db=2.2ms idle=190.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")))) [37] 09:11:04.177 [debug] QUERY OK source="media_items" db=3.9ms idle=9.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 09:11:04.177 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:04.178 [debug] QUERY OK source="settings" db=0.0ms idle=7.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 [] 09:11:04.178 [debug] QUERY OK source="settings" db=0.0ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:11:04.180 [debug] QUERY OK source="media_items" db=1.9ms 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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [37] 09:11:04.182 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:11:04.182 [debug] Current batch of media processed. Will check again in 1000ms 09:11:04.183 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:11:04.183 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:11:04.183 [debug] QUERY OK source="settings" db=0.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:11:04.183 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/bf/47/bf47bfd3e67f976420364d87023b4e2dd062b879b9861871a4fdd9b257e7f677.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fc/e0/fce0dc5e62328a680331d3d8aa34ddf6c73ae577c4b3eaaa3d15b5290be4703d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:11:05.183 [debug] Current batch of media processed. Will check again in 1000ms 09:11:06.185 [debug] Current batch of media processed. Will check again in 1000ms 09:11:06.268 [info] {"source":"oban","duration":3590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:07.185 [debug] Current batch of media processed. Will check again in 1000ms 09:11:08.186 [debug] Current batch of media processed. Will check again in 1000ms 09:11:09.188 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "duration" => 629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", "id" => "b13m-iuu4XU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b13m-iuu4XU", "playlist_index" => 1, "timestamp" => 1777381269, "title" => "Github are you joking?", "upload_date" => "20260428"} 09:11:09.188 [debug] QUERY OK source="sources" db=0.1ms idle=1207.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 (?)) [37] 09:11:09.188 [debug] QUERY OK source="sources" db=0.1ms idle=1207.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" = ?) [37] 09:11:09.189 [debug] QUERY OK source="media_items" db=0.8ms idle=1207.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 09:11:09.190 [debug] QUERY OK source="media_items" db=0.7ms idle=1020.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "134fce2a-9f5a-4f84-9dc1-780ba0a99883", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 14:11:09Z], ~U[2026-04-30 14:11:09Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 09:11:09.191 [debug] QUERY OK source="sources" db=0.1ms idle=20.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" = ?) [37] 09:11:09.191 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:09.191 [debug] QUERY OK source="media_items" db=0.1ms idle=2.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 [2827057] 09:11:09.191 [debug] Current batch of media processed. Will check again in 1000ms 09:11:10.192 [debug] Current batch of media processed. Will check again in 1000ms 09:11:11.193 [debug] Current batch of media processed. Will check again in 1000ms 09:11:12.194 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "duration" => 543, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", "id" => "ZANFhJ9HYsM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "playlist_index" => 2, "timestamp" => 1777032065, "title" => "RollerCoaster Tycoon Optimizations are Insane", "upload_date" => "20260424"} 09:11:12.194 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1213.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 (?)) [37] 09:11:12.195 [debug] QUERY OK source="sources" db=0.1ms idle=1214.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" = ?) [37] 09:11:12.197 [debug] QUERY OK source="media_items" db=2.2ms idle=1214.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 09:11:12.198 [debug] QUERY OK source="media_items" db=0.7ms idle=1024.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "91529a99-4e15-44b1-9b9d-9f27c5b65738", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 14:11:12Z], ~U[2026-04-30 14:11:12Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 09:11:12.199 [debug] QUERY OK source="sources" db=0.1ms idle=24.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" = ?) [37] 09:11:12.199 [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] 09:11:12.199 [debug] QUERY OK source="media_items" db=0.1ms 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 [2795669] 09:11:12.199 [debug] Current batch of media processed. Will check again in 1000ms 09:11:13.200 [debug] Current batch of media processed. Will check again in 1000ms 09:11:14.200 [debug] Current batch of media processed. Will check again in 1000ms 09:11:15.202 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "duration" => 586, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", "id" => "rAREqdtUN48", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rAREqdtUN48", "playlist_index" => 3, "timestamp" => 1776799997, "title" => "We are near peak hype", "upload_date" => "20260421"} 09:11:15.202 [debug] QUERY OK source="sources" db=0.2ms idle=1221.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 (?)) [37] 09:11:15.203 [debug] QUERY OK source="sources" db=0.2ms idle=1222.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" = ?) [37] 09:11:15.205 [debug] QUERY OK source="media_items" db=2.2ms idle=1222.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 09:11:15.206 [debug] QUERY OK source="media_items" db=0.7ms idle=1029.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "f315db5c-c895-4252-9308-14930e8d3393", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 14:11:15Z], ~U[2026-04-30 14:11:15Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 09:11:15.207 [debug] QUERY OK source="sources" db=0.1ms idle=28.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" = ?) [37] 09:11:15.207 [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] 09:11:15.207 [debug] QUERY OK source="media_items" db=0.1ms 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 [2778175] 09:11:15.207 [debug] Current batch of media processed. Will check again in 1000ms 09:11:16.209 [debug] Current batch of media processed. Will check again in 1000ms 09:11:17.210 [debug] Current batch of media processed. Will check again in 1000ms 09:11:18.211 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2786, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", "id" => "6szQxMGX5JI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6szQxMGX5JI", "playlist_index" => 4, "timestamp" => 1776603620, "title" => "The Mythos Situation | TheStandup", "upload_date" => "20260419"} 09:11:18.212 [debug] QUERY OK source="sources" db=0.3ms idle=1230.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 (?)) [37] 09:11:18.212 [debug] QUERY OK source="sources" db=0.1ms idle=1231.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" = ?) [37] 09:11:18.215 [debug] QUERY OK source="media_items" db=2.2ms idle=1231.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 09:11:18.216 [debug] QUERY OK source="media_items" db=0.9ms idle=1032.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "d804cb16-8db2-4f36-9a66-451ab55300c5", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 14:11:18Z], ~U[2026-04-30 14:11:18Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 09:11:18.216 [debug] QUERY OK source="sources" db=0.1ms idle=32.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" = ?) [37] 09:11:18.216 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:18.217 [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 [2760601] 09:11:18.217 [debug] Current batch of media processed. Will check again in 1000ms 09:11:19.218 [debug] Current batch of media processed. Will check again in 1000ms 09:11:20.219 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 736, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", "id" => "Oq5e_8zvick", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Oq5e_8zvick", "playlist_index" => 5, "timestamp" => 1776428220, "title" => "It's all fake", "upload_date" => "20260417"} 09:11:20.219 [debug] QUERY OK source="sources" db=0.2ms idle=238.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 (?)) [37] 09:11:20.220 [debug] QUERY OK source="sources" db=0.2ms idle=238.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" = ?) [37] 09:11:20.222 [debug] QUERY OK source="media_items" db=2.3ms idle=239.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 09:11:20.225 [debug] QUERY OK source="media_items" db=2.6ms idle=242.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "09b6dcc5-b4e8-4848-afa7-1e1b35d88d83", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 14:11:20Z], ~U[2026-04-30 14:11:20Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 09:11:20.226 [debug] QUERY OK source="sources" db=0.1ms idle=39.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" = ?) [37] 09:11:20.226 [debug] QUERY OK source="media_profiles" db=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] 09:11:20.227 [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 [2744497] 09:11:20.227 [debug] Current batch of media processed. Will check again in 1000ms 09:11:21.228 [debug] Current batch of media processed. Will check again in 1000ms 09:11:22.229 [debug] Current batch of media processed. Will check again in 1000ms 09:11:23.231 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 785, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", "id" => "c6yN06GKRNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c6yN06GKRNQ", "playlist_index" => 6, "timestamp" => 1776255366, "title" => "Linus Lays down the Law", "upload_date" => "20260415"} 09:11:23.232 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1250.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 (?)) [37] 09:11:23.232 [debug] QUERY OK source="sources" db=0.1ms idle=1250.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" = ?) [37] 09:11:23.234 [debug] QUERY OK source="media_items" db=2.2ms idle=1251.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 09:11:23.235 [debug] QUERY OK source="media_items" db=0.7ms idle=1045.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "65ea1ded-4ff4-4ea9-9baf-8a6bb76f7f2c", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 14:11:23Z], ~U[2026-04-30 14:11:23Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 09:11:23.236 [debug] QUERY OK source="sources" db=0.2ms idle=45.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" = ?) [37] 09:11:23.236 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:11:23.236 [debug] QUERY OK source="media_items" db=0.1ms 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 [2735456] 09:11:23.236 [debug] Current batch of media processed. Will check again in 1000ms 09:11:24.238 [debug] Current batch of media processed. Will check again in 1000ms 09:11:25.239 [debug] Current batch of media processed. Will check again in 1000ms 09:11:26.240 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 611, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", "id" => "zMpn9ICagdE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zMpn9ICagdE", "playlist_index" => 7, "timestamp" => 1776083174, "title" => "Vim Has A 0-Day????", "upload_date" => "20260413"} 09:11:26.241 [debug] QUERY OK source="sources" db=0.4ms idle=1260.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 (?)) [37] 09:11:26.241 [debug] QUERY OK source="sources" db=0.1ms idle=1260.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" = ?) [37] 09:11:26.244 [debug] QUERY OK source="media_items" db=2.2ms idle=1260.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 09:11:26.245 [debug] QUERY OK source="media_items" db=0.8ms idle=1050.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "32bc0ee3-8594-49a4-8801-03835d0c3e23", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 14:11:26Z], ~U[2026-04-30 14:11:26Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 09:11:26.245 [debug] QUERY OK source="sources" db=0.1ms idle=49.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" = ?) [37] 09:11:26.246 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:11:26.246 [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 [2719999] 09:11:26.246 [debug] Current batch of media processed. Will check again in 1000ms 09:11:27.247 [debug] Current batch of media processed. Will check again in 1000ms 09:11:28.248 [debug] Current batch of media processed. Will check again in 1000ms 09:11:29.249 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2441, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", "id" => "CCBe1shjGOw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CCBe1shjGOw", "playlist_index" => 8, "timestamp" => 1775998816, "title" => "Trash Made a Black Mirror App | The Standup", "upload_date" => "20260412"} 09:11:29.249 [debug] QUERY OK source="sources" db=0.2ms idle=1268.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 (?)) [37] 09:11:29.249 [debug] QUERY OK source="sources" db=0.1ms idle=1268.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" = ?) [37] 09:11:29.252 [debug] QUERY OK source="media_items" db=2.2ms idle=1268.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 09:11:29.253 [debug] QUERY OK source="media_items" db=1.0ms idle=1055.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "758dbd17-0ec9-4b80-9b47-57bc3912b3b5", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 14:11:29Z], ~U[2026-04-30 14:11:29Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 09:11:29.254 [debug] QUERY OK source="sources" db=0.1ms idle=55.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" = ?) [37] 09:11:29.254 [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] 09:11:29.254 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2712431] 09:11:29.254 [debug] Current batch of media processed. Will check again in 1000ms 09:11:30.255 [debug] Current batch of media processed. Will check again in 1000ms 09:11:31.256 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 199, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", "id" => "alK8hgHgxd4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=alK8hgHgxd4", "playlist_index" => 9, "timestamp" => 1775921010, "title" => "I made a music video and I'm not sorry", "upload_date" => "20260411"} 09:11:31.256 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=275.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 (?)) [37] 09:11:31.257 [debug] QUERY OK source="sources" db=0.1ms idle=276.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" = ?) [37] 09:11:31.259 [debug] QUERY OK source="media_items" db=2.2ms idle=276.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 09:11:31.261 [debug] QUERY OK source="media_items" db=1.0ms idle=278.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "a3254bfb-83d9-4118-a721-5bf97735cb7f", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 14:11:31Z], ~U[2026-04-30 14:11:31Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 09:11:31.261 [debug] QUERY OK source="sources" db=0.1ms idle=60.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" = ?) [37] 09:11:31.261 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:11:31.262 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2705803] 09:11:31.262 [debug] Current batch of media processed. Will check again in 1000ms 09:11:32.263 [debug] Current batch of media processed. Will check again in 1000ms 09:11:33.264 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 418, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", "id" => "L29q2LRiMRc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L29q2LRiMRc", "playlist_index" => 10, "timestamp" => 1775837734, "title" => "No way this actually works", "upload_date" => "20260410"} 09:11:33.264 [debug] QUERY OK source="sources" db=0.2ms idle=283.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 (?)) [37] 09:11:33.264 [debug] QUERY OK source="sources" db=0.1ms idle=283.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" = ?) [37] 09:11:33.267 [debug] QUERY OK source="media_items" db=2.2ms idle=283.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 09:11:33.268 [debug] QUERY OK source="media_items" db=0.8ms idle=286.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "d4fd7a23-f122-423a-875a-6afecac0bfa6", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 14:11:33Z], ~U[2026-04-30 14:11:33Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 09:11:33.268 [debug] QUERY OK source="sources" db=0.1ms idle=65.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" = ?) [37] 09:11:33.269 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:33.269 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2697826] 09:11:33.269 [debug] Current batch of media processed. Will check again in 1000ms 09:11:34.270 [debug] Current batch of media processed. Will check again in 1000ms 09:11:35.271 [debug] Current batch of media processed. Will check again in 1000ms 09:11:36.272 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 626, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", "id" => "XRgGFQ0EgM0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "playlist_index" => 11, "timestamp" => 1775622398, "title" => "Is Mythos too Dangerous?", "upload_date" => "20260408"} 09:11:36.272 [debug] QUERY OK source="sources" db=0.4ms idle=1291.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 (?)) [37] 09:11:36.273 [info] {"source":"oban","duration":3865,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:36.273 [debug] QUERY OK source="sources" db=0.1ms idle=1291.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" = ?) [37] 09:11:36.275 [debug] QUERY OK source="media_items" db=2.1ms idle=1066.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 09:11:36.276 [debug] QUERY OK source="media_items" db=0.7ms idle=67.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "be8c8e2b-0adb-497e-aa46-953f698c562d", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 14:11:36Z], ~U[2026-04-30 14:11:36Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 09:11:36.276 [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" = ?) [37] 09:11:36.277 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:11:36.277 [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 [2677584] 09:11:36.277 [debug] Current batch of media processed. Will check again in 1000ms 09:11:37.279 [debug] Current batch of media processed. Will check again in 1000ms 09:11:38.280 [debug] Current batch of media processed. Will check again in 1000ms 09:11:39.281 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 456, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", "id" => "zOh645QHcRY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zOh645QHcRY", "playlist_index" => 12, "timestamp" => 1775563322, "title" => "Axios just got f**ked", "upload_date" => "20260407"} 09:11:39.281 [debug] QUERY OK source="sources" db=0.1ms idle=1300.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 (?)) [37] 09:11:39.281 [debug] QUERY OK source="sources" db=0.0ms idle=1300.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" = ?) [37] 09:11:39.284 [debug] QUERY OK source="media_items" db=2.2ms idle=1300.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 09:11:39.285 [debug] QUERY OK source="media_items" db=0.7ms idle=1072.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "0b37be74-22ba-4ea1-83cf-35c9e982a3c8", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 14:11:39Z], ~U[2026-04-30 14:11:39Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 09:11:39.285 [debug] QUERY OK source="sources" db=0.1ms idle=72.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" = ?) [37] 09:11:39.285 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:39.285 [debug] QUERY OK source="media_items" db=0.1ms 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 [2668267] 09:11:39.286 [debug] Current batch of media processed. Will check again in 1000ms 09:11:40.287 [debug] Current batch of media processed. Will check again in 1000ms 09:11:41.288 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2644, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", "id" => "1o74a8a0rBw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1o74a8a0rBw", "playlist_index" => 13, "timestamp" => 1775307604, "title" => "Maintaining a codebase with AI | The Standup", "upload_date" => "20260404"} 09:11:41.288 [debug] QUERY OK source="sources" db=0.2ms idle=307.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 (?)) [37] 09:11:41.289 [debug] QUERY OK source="sources" db=0.1ms idle=307.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" = ?) [37] 09:11:41.291 [debug] QUERY OK source="media_items" db=2.4ms idle=308.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 09:11:41.293 [debug] QUERY OK source="media_items" db=1.0ms idle=310.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "e0e99371-67d5-4ccf-a1c0-d7fc26a9c901", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 14:11:41Z], ~U[2026-04-30 14:11:41Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 09:11:41.293 [debug] QUERY OK source="sources" db=0.1ms idle=77.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" = ?) [37] 09:11:41.293 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 09:11:41.294 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2647041] 09:11:41.294 [debug] Current batch of media processed. Will check again in 1000ms 09:11:42.295 [debug] Current batch of media processed. Will check again in 1000ms 09:11:43.296 [debug] Current batch of media processed. Will check again in 1000ms 09:11:44.297 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 435, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", "id" => "UwJp5xm1MNc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UwJp5xm1MNc", "playlist_index" => 14, "timestamp" => 1775217647, "title" => "Github has gone too far", "upload_date" => "20260403"} 09:11:44.297 [debug] QUERY OK source="sources" db=0.1ms idle=1316.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 (?)) [37] 09:11:44.298 [debug] QUERY OK source="sources" db=0.1ms idle=1316.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" = ?) [37] 09:11:44.300 [debug] QUERY OK source="media_items" db=2.2ms idle=1317.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 09:11:44.302 [debug] QUERY OK source="media_items" db=1.8ms idle=1083.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "aa6870ca-afce-4d4e-ac59-689fa306430c", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 14:11:44Z], ~U[2026-04-30 14:11:44Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 09:11:44.302 [debug] QUERY OK source="sources" db=0.1ms idle=83.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" = ?) [37] 09:11:44.303 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:11:44.303 [debug] QUERY OK source="media_items" db=0.1ms 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 [2634305] 09:11:44.303 [debug] Current batch of media processed. Will check again in 1000ms 09:11:45.304 [debug] Current batch of media processed. Will check again in 1000ms 09:11:46.305 [debug] Current batch of media processed. Will check again in 1000ms 09:11:47.306 [debug] Current batch of media processed. Will check again in 1000ms 09:11:48.307 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 719, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", "id" => "GdgRpiQRsis", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GdgRpiQRsis", "playlist_index" => 15, "timestamp" => 1775013611, "title" => "Claude Code got leaked", "upload_date" => "20260401"} 09:11:48.307 [debug] QUERY OK source="sources" db=0.2ms idle=326.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 (?)) [37] 09:11:48.308 [debug] QUERY OK source="sources" db=0.1ms idle=326.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" = ?) [37] 09:11:48.310 [debug] QUERY OK source="media_items" db=2.3ms idle=327.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 09:11:48.312 [debug] QUERY OK source="media_items" db=1.0ms idle=329.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "80190d06-e0d1-47b3-b7e6-0f41073d7e41", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 14:11:48Z], ~U[2026-04-30 14:11:48Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 09:11:48.312 [debug] QUERY OK source="sources" db=0.2ms idle=87.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" = ?) [37] 09:11:48.312 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:11:48.312 [debug] QUERY OK source="media_items" db=0.1ms 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 [2621036] 09:11:48.313 [debug] Current batch of media processed. Will check again in 1000ms 09:11:49.314 [debug] Current batch of media processed. Will check again in 1000ms 09:11:50.315 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 578, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", "id" => "ceH0IT-OBCw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ceH0IT-OBCw", "playlist_index" => 16, "timestamp" => 1774958441, "title" => "The End of JS", "upload_date" => "20260331"} 09:11:50.316 [debug] QUERY OK source="sources" db=0.1ms idle=334.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 (?)) [37] 09:11:50.316 [debug] QUERY OK source="sources" db=0.0ms idle=335.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" = ?) [37] 09:11:50.318 [debug] QUERY OK source="media_items" db=2.2ms idle=335.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 09:11:50.320 [debug] QUERY OK source="media_items" db=0.9ms idle=337.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "f9092593-68a8-4dec-a618-171d8f5b5276", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 14:11:50Z], ~U[2026-04-30 14:11:50Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 09:11:50.320 [debug] QUERY OK source="sources" db=0.1ms idle=92.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" = ?) [37] 09:11:50.320 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:50.321 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2613530] 09:11:50.321 [debug] Current batch of media processed. Will check again in 1000ms 09:11:51.322 [debug] Current batch of media processed. Will check again in 1000ms 09:11:52.323 [debug] Current batch of media processed. Will check again in 1000ms 09:11:53.324 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 685, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", "id" => "DAHZJAoZ3OM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "playlist_index" => 17, "timestamp" => 1774872076, "title" => "Invite to the Slop Party", "upload_date" => "20260330"} 09:11:53.325 [debug] QUERY OK source="sources" db=0.4ms idle=1343.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 (?)) [37] 09:11:53.325 [debug] QUERY OK source="sources" db=0.1ms idle=1344.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" = ?) [37] 09:11:53.327 [debug] QUERY OK source="media_items" db=2.2ms idle=1344.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 09:11:53.329 [debug] QUERY OK source="media_items" db=1.4ms idle=1098.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "a26dff5d-4971-44d8-9a06-7a1375d8084e", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 14:11:53Z], ~U[2026-04-30 14:11:53Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 09:11:53.329 [debug] QUERY OK source="sources" db=0.1ms idle=98.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" = ?) [37] 09:11:53.330 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:53.330 [debug] QUERY OK source="media_items" db=0.2ms 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 [2605590] 09:11:53.330 [debug] Current batch of media processed. Will check again in 1000ms 09:11:54.331 [debug] Current batch of media processed. Will check again in 1000ms 09:11:55.332 [debug] Current batch of media processed. Will check again in 1000ms 09:11:56.333 [debug] Current batch of media processed. Will check again in 1000ms 09:11:57.334 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 491, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", "id" => "KPtIx5ZFSOY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "playlist_index" => 18, "timestamp" => 1774612826, "title" => "The Copilot Problem", "upload_date" => "20260327"} 09:11:57.334 [debug] QUERY OK source="sources" db=0.2ms idle=353.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 (?)) [37] 09:11:57.334 [debug] QUERY OK source="sources" db=0.1ms idle=353.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" = ?) [37] 09:11:57.337 [debug] QUERY OK source="media_items" db=2.3ms idle=353.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 09:11:57.338 [debug] QUERY OK source="media_items" db=0.8ms idle=356.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "0bedda4a-307f-4989-a1d5-60c2d9595696", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 14:11:57Z], ~U[2026-04-30 14:11:57Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 09:11:57.338 [debug] QUERY OK source="sources" db=0.1ms idle=100.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" = ?) [37] 09:11:57.339 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:11:57.339 [debug] QUERY OK source="media_items" db=0.1ms 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 [2579932] 09:11:57.339 [debug] Current batch of media processed. Will check again in 1000ms 09:11:58.340 [debug] Current batch of media processed. Will check again in 1000ms 09:11:59.341 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 518, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", "id" => "mx3g7XoPVNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "playlist_index" => 19, "timestamp" => 1774526481, "title" => "A bad day to use python", "upload_date" => "20260326"} 09:11:59.342 [debug] QUERY OK source="sources" db=0.3ms idle=360.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 (?)) [37] 09:11:59.342 [debug] QUERY OK source="sources" db=0.1ms idle=361.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" = ?) [37] 09:11:59.345 [debug] QUERY OK source="media_items" db=2.4ms idle=361.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 09:11:59.346 [debug] QUERY OK source="media_items" db=0.9ms idle=364.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "05b11f48-0c73-4785-af68-f3c7ea969679", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 14:11:59Z], ~U[2026-04-30 14:11:59Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 09:11:59.346 [debug] QUERY OK source="sources" db=0.2ms idle=106.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" = ?) [37] 09:11:59.347 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:11:59.347 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2575352] 09:11:59.347 [debug] Current batch of media processed. Will check again in 1000ms 09:12:00.348 [debug] Current batch of media processed. Will check again in 1000ms 09:12:00.850 [info] {"source":"oban","duration":153,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:12:01.349 [debug] Current batch of media processed. Will check again in 1000ms 09:12:02.122 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/bf/47/bf47bfd3e67f976420364d87023b4e2dd062b879b9861871a4fdd9b257e7f677.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fc/e0/fce0dc5e62328a680331d3d8aa34ddf6c73ae577c4b3eaaa3d15b5290be4703d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:12:02.122 [debug] Gracefully stopping file follower 09:12:02.122 [debug] QUERY OK source="sources" db=0.2ms idle=1141.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 (?)) [37] 09:12:02.123 [debug] QUERY OK source="sources" db=0.1ms idle=1142.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" = ?) [37] 09:12:02.125 [debug] QUERY OK source="media_items" db=2.3ms idle=1142.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 09:12:02.126 [debug] QUERY OK source="media_items" db=0.7ms idle=883.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "7f0f09e0-b6d5-4387-9e44-b483eed5ea1d", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 09:12:02.127 [debug] QUERY OK source="sources" db=0.1ms idle=146.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" = ?) [37] 09:12:02.129 [debug] QUERY OK source="media_items" db=2.2ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 09:12:02.130 [debug] QUERY OK source="media_items" db=0.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "c47f9950-568a-4d2e-9a68-99667405b7b3", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 09:12:02.131 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.133 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 09:12:02.134 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "143f1d21-f7d0-46f3-8b1f-b6fceac3f19a", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 09:12:02.135 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.137 [debug] QUERY OK source="media_items" db=2.2ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 09:12:02.138 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "60848477-8bd0-484a-8593-457b1219b341", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 09:12:02.139 [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" = ?) [37] 09:12:02.141 [debug] QUERY OK source="media_items" db=2.1ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 09:12:02.142 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "f7ad8345-dc1f-458a-8e03-2fca76ed03bc", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 09:12:02.143 [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" = ?) [37] 09:12:02.145 [debug] QUERY OK source="media_items" db=2.1ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 09:12:02.161 [debug] QUERY OK source="media_items" db=15.1ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "52f2184f-d8d2-4012-a262-510ab418d716", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 09:12:02.162 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.164 [debug] QUERY OK source="media_items" db=2.3ms idle=19.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 09:12:02.168 [debug] QUERY OK source="media_items" db=3.8ms idle=21.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "3c1127cb-2b48-4dbd-ba67-7c43b3841ccc", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 09:12:02.169 [debug] QUERY OK source="sources" db=0.6ms idle=23.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" = ?) [37] 09:12:02.172 [debug] QUERY OK source="media_items" db=2.1ms idle=8.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 09:12:02.173 [debug] QUERY OK source="media_items" db=1.1ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "8d60c0e9-63cc-4070-b013-61c2b00f709f", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 09:12:02.174 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.176 [debug] QUERY OK source="media_items" db=2.1ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 09:12:02.177 [debug] QUERY OK source="media_items" db=0.8ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "1e6a711f-19e7-4cf6-b544-f21aeabe2c71", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 09:12:02.177 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.180 [debug] QUERY OK source="media_items" db=2.1ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 09:12:02.181 [debug] QUERY OK source="media_items" db=0.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "7a159b0d-9abe-4742-bc64-415a1124192b", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 09:12:02.181 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.183 [debug] QUERY OK source="media_items" db=2.0ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 09:12:02.186 [debug] QUERY OK source="media_items" db=2.3ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "20b473b9-00fb-4ed8-945d-3aeb8820ba49", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 09:12:02.186 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.189 [debug] QUERY OK source="media_items" db=2.0ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 09:12:02.190 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "4b67ca75-1d24-47f4-a589-29d75290a563", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 09:12:02.190 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.192 [debug] QUERY OK source="media_items" db=2.0ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 09:12:02.194 [debug] QUERY OK source="media_items" db=1.0ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "6f09cbbd-23fb-47b6-b33b-5b730a9e0335", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 09:12:02.194 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.196 [debug] QUERY OK source="media_items" db=2.0ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 09:12:02.197 [debug] QUERY OK source="media_items" db=0.7ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "f03dde0f-e2ae-441c-8acc-ad615de8c416", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 09:12:02.198 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.200 [debug] QUERY OK source="media_items" db=1.9ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 09:12:02.201 [debug] QUERY OK source="media_items" db=0.8ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "b462f631-d002-4c2f-8952-8b9fc5e2e0fa", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 09:12:02.201 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.204 [debug] QUERY OK source="media_items" db=1.9ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 09:12:02.205 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "1f637ffe-9da5-4420-b656-56646bfaea66", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 09:12:02.205 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.207 [debug] QUERY OK source="media_items" db=2.1ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 09:12:02.208 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "132129cb-f6f7-4c5c-aa5b-57d5a58e6140", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 09:12:02.209 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.210 [debug] QUERY OK source="media_items" db=1.8ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 09:12:02.211 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "4dca2844-33ee-4cbf-8a7b-deed90080192", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 09:12:02.212 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 09:12:02.214 [debug] QUERY OK source="media_items" db=1.8ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 09:12:02.215 [debug] QUERY OK source="media_items" db=0.8ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "dad42ee3-9374-4c41-9164-2da88eb2a086", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 09:12:02.215 [debug] QUERY OK source="sources" db=0.2ms idle=4.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" = ?) [37] 09:12:02.217 [debug] QUERY OK source="media_items" db=1.8ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 12:15:57Z], 37] 09:12:02.218 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "d5abd6bc-38e7-4464-8539-ee663b226f5d", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, false, false, 37, [], 98, ~U[2026-03-24 12:15:57Z], ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, 37, ~U[2026-03-24 12:15:57Z]] 09:12:02.219 [debug] QUERY OK source="sources" db=0.2ms idle=4.7ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z], 37] 09:12:02.221 [debug] QUERY OK source="media_items" db=2.0ms idle=4.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 ((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")))) [37] 09:12:02.238 [debug] QUERY OK source="media_items" db=2.1ms idle=3.4ms 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")))) [37] 09:12:02.247 [debug] QUERY OK source="media_items" db=8.4ms idle=4.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 09:12:02.248 [debug] QUERY OK source="tasks" db=0.3ms idle=9.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300653, 37, ~U[2026-04-30 14:12:02Z], ~U[2026-04-30 14:12:02Z]] 09:12:02.248 [info] {"args":{"id":37},"id":300566,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":58078390,"event":"job:stop","queue_time":416323,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:12:06.277 [info] {"source":"oban","duration":3198,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:12:36.281 [info] {"source":"oban","duration":3284,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:00.851 [info] {"source":"oban","duration":274,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:13:06.284 [info] {"source":"oban","duration":2442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:36.288 [info] {"source":"oban","duration":3824,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:00.852 [info] {"source":"oban","duration":214,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:14:06.293 [info] {"source":"oban","duration":3840,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:36.298 [info] {"source":"oban","duration":3153,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:00.853 [info] {"source":"oban","duration":131,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:15:06.301 [info] {"source":"oban","duration":2760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:36.304 [info] {"source":"oban","duration":2330,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:48.563 [info] {"args":{"id":2820987},"id":294746,"meta":{},"system_time":1777558548563202747,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:15:48.564 [debug] QUERY OK source="media_items" db=0.4ms idle=582.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" = ?) [2820987] 09:15:48.564 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:15:48.564 [debug] QUERY OK source="sources" db=0.3ms idle=583.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" = ?) [43] 09:15:48.564 [debug] QUERY OK source="media_profiles" db=0.1ms idle=583.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] 09:15:48.565 [debug] QUERY OK source="media_items" db=0.3ms idle=8.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 [2820987] 09:15:48.566 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [2820987] 09:15:48.566 [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] 09:15:48.566 [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 [] 09:15:48.566 [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 [] 09:15:48.567 [debug] Running yt-dlp command for action: get_downloadable_status 09:15:48.568 [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 [] 09:15:48.568 [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 [] 09:15:48.568 [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 [] 09:15:48.569 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1F7Y7lRCJio --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5f/03/5f0387e3d48b27dba599a29fc93d4cd2847dad13e4547ceedc89b5b66533bc55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:15:50.290 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1F7Y7lRCJio --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5f/03/5f0387e3d48b27dba599a29fc93d4cd2847dad13e4547ceedc89b5b66533bc55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 1F7Y7lRCJio: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:15:50.290 [error] yt-dlp download error for media item #2820987: "ERROR: [youtube] 1F7Y7lRCJio: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:15:50.291 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2820987},"id":294746,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1727872,"event":"job:exception","queue_time":567389,"attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:16:00.854 [info] {"source":"oban","duration":194,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:16:06.308 [info] {"source":"oban","duration":3286,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:16:36.312 [info] {"source":"oban","duration":3408,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:00.855 [info] {"source":"oban","duration":199,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:17:06.317 [info] {"source":"oban","duration":4377,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:36.320 [info] {"source":"oban","duration":2870,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:00.856 [info] {"source":"oban","duration":203,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:18:06.324 [info] {"source":"oban","duration":2607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:09.784 [info] {"args":{"id":52},"id":300651,"meta":{},"system_time":1777558689784799363,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:18:09.785 [debug] QUERY OK source="sources" db=0.4ms idle=1803.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" = ?) [52] 09:18:09.785 [debug] QUERY OK source="settings" db=0.1ms idle=1804.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:09.786 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1009.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] 09:18:09.786 [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 [] 09:18:09.786 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:18:09.967 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:18:09.967 [debug] QUERY OK source="media_items" db=0.4ms idle=182.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:18:09.968 [debug] QUERY OK source="settings" db=0.1ms idle=182.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:09.968 [debug] QUERY OK source="settings" db=0.0ms idle=182.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:09.968 [debug] Running yt-dlp command for action: get_media_attributes 09:18:09.969 [debug] QUERY OK source="settings" db=0.0ms idle=183.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 [] 09:18:09.969 [debug] QUERY OK source="settings" db=0.0ms idle=183.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 [] 09:18:09.970 [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 [] 09:18:09.970 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/1f/bc/1fbc1488bade06021ea2e712b72115491df008dc249c8081a1e70fd94a3eecac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:11.672 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/1f/bc/1fbc1488bade06021ea2e712b72115491df008dc249c8081a1e70fd94a3eecac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:18:11.672 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:18:11.673 [debug] QUERY OK source="media_items" db=0.6ms idle=892.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")))) [52] 09:18:11.675 [debug] QUERY OK source="tasks" db=0.1ms idle=694.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300654, 1301334, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.677 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300655, 1301335, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.679 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300656, 1301347, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.682 [info] {"args":{"id":1301334},"id":300654,"meta":{},"system_time":1777558691682214107,"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"]} 09:18:11.682 [info] {"args":{"id":1301335},"id":300655,"meta":{},"system_time":1777558691682277410,"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"]} 09:18:11.682 [debug] QUERY OK source="media_items" db=0.2ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 09:18:11.682 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:11.682 [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 WHERE (m0."id" = ?) [1301335] 09:18:11.682 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:11.683 [debug] QUERY OK source="tasks" db=0.3ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300657, 1301392, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.683 [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" = ?) [52] 09:18:11.683 [debug] QUERY OK source="sources" db=0.3ms idle=0.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" = ?) [52] 09:18:11.683 [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] 09:18:11.683 [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] 09:18:11.684 [debug] QUERY OK source="media_items" db=0.6ms 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 [1301335] 09:18:11.684 [debug] QUERY OK source="media_items" db=0.8ms 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 [1301334] 09:18:11.686 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301335] 09:18:11.686 [debug] QUERY OK source="tasks" db=0.3ms idle=1.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300658, 1301393, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.686 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:18:11.686 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301334] 09:18:11.687 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:18:11.687 [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] 09:18:11.687 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:18:11.687 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:11.688 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:18:11.688 [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 [] 09:18:11.689 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:11.689 [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 [] 09:18:11.689 [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 [] 09:18:11.689 [debug] QUERY OK source="tasks" db=0.2ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300659, 1301394, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.689 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:18:11.689 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/5b/855bfe06803166a8c8a4266f8c59031bb214a96b16a8aa3b6a40a42c0605a95e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:11.689 [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 [] 09:18:11.689 [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 [] 09:18:11.690 [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 [] 09:18:11.690 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f3/f0/f3f099ef281d4938a3625740faf878ebeb1fdf3e185f807a53972a79182f0a6d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:11.691 [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" [300660, 1301395, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.694 [debug] QUERY OK source="tasks" db=0.2ms idle=2.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300661, 1301397, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.696 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300662, 1301398, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.698 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300663, 1301399, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.700 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300664, 1301400, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.703 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300665, 2720968, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.704 [debug] QUERY OK source="tasks" db=0.1ms idle=1.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300666, 52, ~U[2026-04-30 14:18:11Z], ~U[2026-04-30 14:18:11Z]] 09:18:11.704 [info] {"args":{"id":52},"id":300651,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":1919681,"event":"job:stop","queue_time":725637,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:18:13.520 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/5b/855bfe06803166a8c8a4266f8c59031bb214a96b16a8aa3b6a40a42c0605a95e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:13.520 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:13.521 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:13.521 [info] {"args":{"id":1301335},"id":300655,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1838758,"event":"job:stop","queue_time":680944,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:13.527 [info] {"args":{"id":1301347},"id":300656,"meta":{},"system_time":1777558693527635107,"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"]} 09:18:13.528 [debug] QUERY OK source="media_items" db=0.1ms idle=546.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" = ?) [1301347] 09:18:13.528 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:13.528 [debug] QUERY OK source="sources" db=0.1ms idle=547.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" = ?) [52] 09:18:13.528 [debug] QUERY OK source="media_profiles" db=0.1ms idle=547.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] 09:18:13.529 [debug] QUERY OK source="media_items" db=0.1ms 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 [1301347] 09:18:13.530 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 09:18:13.530 [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] 09:18:13.531 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:13.531 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:13.531 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:13.532 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:13.532 [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 [] 09:18:13.532 [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 [] 09:18:13.533 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/0c/b50cef91e8513912870237b8f063fb0f560d3e1e12b84d28e29a950f6f1d4026.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:13.583 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f3/f0/f3f099ef281d4938a3625740faf878ebeb1fdf3e185f807a53972a79182f0a6d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:13.583 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:13.583 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:13.584 [info] {"args":{"id":1301334},"id":300654,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1901728,"event":"job:stop","queue_time":680944,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:13.590 [info] {"args":{"id":1301392},"id":300657,"meta":{},"system_time":1777558693590449801,"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"]} 09:18:13.590 [debug] QUERY OK source="media_items" db=0.2ms idle=57.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" = ?) [1301392] 09:18:13.590 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:13.591 [debug] QUERY OK source="sources" db=0.2ms idle=58.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" = ?) [52] 09:18:13.591 [debug] QUERY OK source="media_profiles" db=0.2ms idle=58.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] 09:18:13.592 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301392] 09:18:13.592 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 09:18:13.593 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:18:13.593 [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 [] 09:18:13.593 [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 [] 09:18:13.593 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:13.594 [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 [] 09:18:13.594 [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 [] 09:18:13.594 [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 [] 09:18:13.594 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5a/a6/5aa64994a4102baf556bd3bcd9bec43dba48a894bd289923cc382f5f061e49a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:15.420 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5a/a6/5aa64994a4102baf556bd3bcd9bec43dba48a894bd289923cc382f5f061e49a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:15.420 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:15.420 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:15.421 [info] {"args":{"id":1301392},"id":300657,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1830531,"event":"job:stop","queue_time":2589941,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:15.427 [info] {"args":{"id":1301393},"id":300658,"meta":{},"system_time":1777558695427638211,"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"]} 09:18:15.428 [debug] QUERY OK source="media_items" db=0.1ms idle=446.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" = ?) [1301393] 09:18:15.428 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:15.428 [debug] QUERY OK source="sources" db=0.1ms idle=447.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" = ?) [52] 09:18:15.428 [debug] QUERY OK source="media_profiles" db=0.1ms idle=447.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] 09:18:15.429 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301393] 09:18:15.430 [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" = ?) [1301393] 09:18:15.430 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:18:15.430 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:15.430 [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 [] 09:18:15.431 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:15.431 [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 [] 09:18:15.432 [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 [] 09:18:15.432 [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 [] 09:18:15.432 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/8d/1f8d1565634f0ba7e6092c8d19b6836b21f129d23af2ce6d6200306ef4d96602.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:15.484 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b5/0c/b50cef91e8513912870237b8f063fb0f560d3e1e12b84d28e29a950f6f1d4026.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:15.484 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:15.484 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:15.484 [info] {"args":{"id":1301347},"id":300656,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1956633,"event":"job:stop","queue_time":2526914,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:15.491 [info] {"args":{"id":1301394},"id":300659,"meta":{},"system_time":1777558695491545759,"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"]} 09:18:15.492 [debug] QUERY OK source="media_items" db=0.2ms idle=59.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" = ?) [1301394] 09:18:15.492 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:15.492 [debug] QUERY OK source="sources" db=0.2ms idle=60.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" = ?) [52] 09:18:15.492 [debug] QUERY OK source="media_profiles" db=0.1ms idle=60.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] 09:18:15.493 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301394] 09:18:15.493 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 09:18:15.494 [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] 09:18:15.494 [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 [] 09:18:15.494 [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 [] 09:18:15.494 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:15.495 [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 [] 09:18:15.495 [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 [] 09:18:15.495 [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 [] 09:18:15.495 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/50/d9/50d96a724d924114408ae74017ca2dafb8e63aa8f5394ca8030a345d21b65a16.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:17.128 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/50/d9/50d96a724d924114408ae74017ca2dafb8e63aa8f5394ca8030a345d21b65a16.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:17.128 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:17.128 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:17.129 [info] {"args":{"id":1301394},"id":300659,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1637470,"event":"job:stop","queue_time":4490950,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:17.135 [info] {"args":{"id":1301395},"id":300660,"meta":{},"system_time":1777558697135879146,"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"]} 09:18:17.136 [debug] QUERY OK source="media_items" db=0.2ms idle=155.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" = ?) [1301395] 09:18:17.136 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:17.136 [debug] QUERY OK source="sources" db=0.1ms idle=155.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" = ?) [52] 09:18:17.137 [debug] QUERY OK source="media_profiles" db=0.1ms idle=155.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] 09:18:17.137 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301395] 09:18:17.138 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301395] 09:18:17.139 [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] 09:18:17.139 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:17.139 [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 [] 09:18:17.139 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:17.140 [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 [] 09:18:17.140 [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 [] 09:18:17.140 [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 [] 09:18:17.141 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7c/b8/7cb8c9c1c9946b81df47cb50f2534816604b1b89e4089f1c2027d4423917a202.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:17.189 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/8d/1f8d1565634f0ba7e6092c8d19b6836b21f129d23af2ce6d6200306ef4d96602.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:17.189 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:17.189 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:17.189 [info] {"args":{"id":1301393},"id":300658,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1761663,"event":"job:stop","queue_time":4426897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:17.195 [info] {"args":{"id":1301397},"id":300661,"meta":{},"system_time":1777558697195447321,"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"]} 09:18:17.195 [debug] QUERY OK source="media_items" db=0.2ms idle=55.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" = ?) [1301397] 09:18:17.196 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:17.196 [debug] QUERY OK source="sources" db=0.2ms idle=55.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" = ?) [52] 09:18:17.196 [debug] QUERY OK source="media_profiles" db=0.1ms idle=55.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] 09:18:17.197 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 09:18:17.198 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 09:18:17.198 [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] 09:18:17.198 [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 [] 09:18:17.198 [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 [] 09:18:17.198 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:17.199 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:17.199 [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 [] 09:18:17.200 [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 [] 09:18:17.200 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/83/898370f47073090b5de0161dc4e3c27f72e30b0074512136871951ca029cbce0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:18.868 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/83/898370f47073090b5de0161dc4e3c27f72e30b0074512136871951ca029cbce0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:18.868 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:18.869 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:18.869 [info] {"args":{"id":1301397},"id":300661,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1673738,"event":"job:stop","queue_time":6194908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:18.869 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7c/b8/7cb8c9c1c9946b81df47cb50f2534816604b1b89e4089f1c2027d4423917a202.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:18.869 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:18.869 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:18.870 [info] {"args":{"id":1301395},"id":300660,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1734138,"event":"job:stop","queue_time":6134960,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:18.875 [info] {"args":{"id":1301398},"id":300662,"meta":{},"system_time":1777558698875806499,"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"]} 09:18:18.875 [info] {"args":{"id":1301399},"id":300663,"meta":{},"system_time":1777558698875839975,"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"]} 09:18:18.876 [debug] QUERY OK source="media_items" db=0.2ms idle=1087.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" = ?) [1301398] 09:18:18.876 [debug] QUERY OK source="media_items" db=0.1ms idle=86.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" = ?) [1301399] 09:18:18.876 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:18.876 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:18.876 [debug] QUERY OK source="sources" db=0.5ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 09:18:18.876 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [52] 09:18:18.877 [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] 09:18:18.877 [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] 09:18:18.878 [debug] QUERY OK source="media_items" db=0.6ms 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 [1301398] 09:18:18.878 [debug] QUERY OK source="media_items" db=0.6ms 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 [1301399] 09:18:18.880 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301398] 09:18:18.880 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:18:18.880 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:18.880 [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 [] 09:18:18.881 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:18.881 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301399] 09:18:18.881 [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] 09:18:18.881 [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 [] 09:18:18.882 [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 [] 09:18:18.882 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:18.882 [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 [] 09:18:18.882 [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 [] 09:18:18.882 [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 [] 09:18:18.882 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f3/67/f3670d1e6c606e31bae9900f66dd2128795eb782afa759016a75541bb92ab514.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:18.882 [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 [] 09:18:18.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 [] 09:18:18.883 [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 [] 09:18:18.883 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/05/8d/058d0fa48a6e4ada6347bf685b73fd75c075075ab80d88d2b1bdfef699feba52.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:20.428 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f3/67/f3670d1e6c606e31bae9900f66dd2128795eb782afa759016a75541bb92ab514.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:20.429 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:20.429 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:20.429 [info] {"args":{"id":1301398},"id":300662,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1553524,"event":"job:stop","queue_time":7874911,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:20.436 [info] {"args":{"id":1301400},"id":300664,"meta":{},"system_time":1777558700436893536,"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"]} 09:18:20.437 [debug] QUERY OK source="media_items" db=0.1ms idle=455.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" = ?) [1301400] 09:18:20.437 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:20.437 [debug] QUERY OK source="sources" db=0.2ms idle=456.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" = ?) [52] 09:18:20.438 [debug] QUERY OK source="media_profiles" db=0.1ms idle=456.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] 09:18:20.438 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301400] 09:18:20.439 [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" = ?) [1301400] 09:18:20.440 [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] 09:18:20.440 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:20.440 [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 [] 09:18:20.440 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:20.441 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:18:20.441 [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 [] 09:18:20.442 [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 [] 09:18:20.442 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/b1/afb157bb7baff641d299da3c67dffb049d812e331d7244d04031b852ecc00280.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:20.522 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/05/8d/058d0fa48a6e4ada6347bf685b73fd75c075075ab80d88d2b1bdfef699feba52.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:20.522 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:20.522 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:20.522 [info] {"args":{"id":1301399},"id":300663,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1646580,"event":"job:stop","queue_time":7874911,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:20.529 [info] {"args":{"id":2720968},"id":300665,"meta":{},"system_time":1777558700529576566,"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"]} 09:18:20.530 [debug] QUERY OK source="media_items" db=0.2ms idle=87.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" = ?) [2720968] 09:18:20.530 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:18:20.530 [debug] QUERY OK source="sources" db=0.2ms idle=88.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" = ?) [52] 09:18:20.530 [debug] QUERY OK source="media_profiles" db=0.1ms idle=88.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] 09:18:20.531 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2720968] 09:18:20.532 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2720968] 09:18:20.532 [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] 09:18:20.532 [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 [] 09:18:20.532 [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 [] 09:18:20.532 [debug] Running yt-dlp command for action: get_downloadable_status 09:18:20.534 [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 [] 09:18:20.534 [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 [] 09:18:20.534 [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 [] 09:18:20.534 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/ce/98ce9a4cb2bc796492106841a212d9be6d4d7ee2d33cb334aba0544240ae9b6b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:22.199 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/b1/afb157bb7baff641d299da3c67dffb049d812e331d7244d04031b852ecc00280.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:22.200 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:22.200 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:22.200 [info] {"args":{"id":1301400},"id":300664,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1763400,"event":"job:stop","queue_time":9435948,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:22.241 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/ce/98ce9a4cb2bc796492106841a212d9be6d4d7ee2d33cb334aba0544240ae9b6b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:18:22.241 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:22.241 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:18:22.242 [info] {"args":{"id":2720968},"id":300665,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1712241,"event":"job:stop","queue_time":9528939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:18:36.328 [info] {"source":"oban","duration":3332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:00.857 [info] {"source":"oban","duration":185,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:19:06.332 [info] {"source":"oban","duration":3744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:36.337 [info] {"source":"oban","duration":4398,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:00.858 [info] {"source":"oban","duration":188,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:20:06.341 [info] {"source":"oban","duration":3182,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:10.962 [info] {"args":{"id":2248439},"id":299150,"meta":{},"system_time":1777558810962314734,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:20:10.962 [debug] QUERY OK source="media_items" db=0.3ms idle=981.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" = ?) [2248439] 09:20:10.963 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:20:10.963 [debug] QUERY OK source="sources" db=0.3ms idle=981.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" = ?) [43] 09:20:10.963 [debug] QUERY OK source="media_profiles" db=0.1ms idle=981.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] 09:20:10.964 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [2248439] 09:20:10.965 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [2248439] 09:20:10.965 [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] 09:20:10.965 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:20:10.966 [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 [] 09:20:10.966 [debug] Running yt-dlp command for action: get_downloadable_status 09:20:10.966 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:20:10.967 [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 [] 09:20:10.967 [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 [] 09:20:10.967 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tJnG3Zeuyb8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/54/6654bf0278d84d09c1251b19e7aedfcec1429f40b634390082da63ea4ef5c9d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:20:12.729 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tJnG3Zeuyb8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/54/6654bf0278d84d09c1251b19e7aedfcec1429f40b634390082da63ea4ef5c9d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] tJnG3Zeuyb8: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:20:12.729 [error] yt-dlp download error for media item #2248439: "ERROR: [youtube] tJnG3Zeuyb8: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:20:12.729 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2248439},"id":299150,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1767100,"event":"job:exception","queue_time":826534,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:20:30.991 [info] {"args":{"id":46},"id":300581,"meta":{},"system_time":1777558830991822652,"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"]} 09:20:30.992 [debug] QUERY OK source="sources" db=0.1ms idle=1010.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" = ?) [46] 09:20:30.992 [debug] QUERY OK source="settings" db=0.1ms idle=1011.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:20:30.993 [debug] QUERY OK source="media_items" db=0.5ms idle=1007.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")))) [46] 09:20:30.993 [debug] QUERY OK source="media_items" db=0.1ms idle=7.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 09:20:30.993 [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] 09:20:30.993 [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 [] 09:20:30.994 [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 [] 09:20:30.995 [debug] QUERY OK source="media_items" db=0.6ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [46] 09:20:30.997 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:20:30.997 [debug] Current batch of media processed. Will check again in 1000ms 09:20:30.997 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:20:30.997 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:20:30.997 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:20:30.998 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCngn7SVujlvskHRvRKc1cTw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/6d/e1/6de14379e925ad68846a51c1b7a96537c1034ec15cd5300afc73932a69774991.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/63/01/63018653a43a2fa691679dacfc72037995860e5fb113bb78aa7456e6fcf873f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:20:31.998 [debug] Current batch of media processed. Will check again in 1000ms 09:20:32.999 [debug] Current batch of media processed. Will check again in 1000ms 09:20:34.000 [debug] Current batch of media processed. Will check again in 1000ms 09:20:35.001 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 549, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", "id" => "fLmIRC8R19s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fLmIRC8R19s", "playlist_index" => 1, "timestamp" => 1772314079, "title" => "Linux / FOSS are irrelevant in the future", "upload_date" => "20260228"} 09:20:35.001 [debug] QUERY OK source="sources" db=0.2ms idle=20.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 (?)) [46] 09:20:35.001 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 09:20:35.002 [debug] QUERY OK source="media_items" db=0.4ms idle=21.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-28 21:27:59Z], 46] 09:20:35.025 [debug] QUERY OK source="media_items" db=22.3ms idle=21.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "41544a4d-c049-4a7e-90f5-2cf172c3a46f", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, false, false, 46, [], 98, ~U[2026-02-28 21:27:59Z], ~U[2026-04-30 14:20:35Z], ~U[2026-04-30 14:20:35Z], "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, 46, ~U[2026-02-28 21:27:59Z]] 09:20:35.025 [debug] QUERY OK source="sources" db=0.3ms idle=35.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" = ?) [46] 09:20:35.026 [debug] QUERY OK source="media_profiles" db=0.2ms idle=24.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] 09:20:35.026 [debug] QUERY OK source="media_items" db=0.2ms idle=24.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 [2377781] 09:20:35.026 [debug] Current batch of media processed. Will check again in 1000ms 09:20:36.026 [debug] Current batch of media processed. Will check again in 1000ms 09:20:36.345 [info] {"source":"oban","duration":3325,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:37.028 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 507, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", "id" => "7y60xBovdnI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7y60xBovdnI", "playlist_index" => 2, "timestamp" => 1772097703, "title" => "HOST FREE from home (no tunnel, no VPS, no Static IP)", "upload_date" => "20260226"} 09:20:37.028 [debug] QUERY OK source="sources" db=0.2ms idle=683.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 (?)) [46] 09:20:37.028 [debug] QUERY OK source="sources" db=0.1ms idle=47.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" = ?) [46] 09:20:37.029 [debug] QUERY OK source="media_items" db=0.5ms idle=48.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 09:21:43Z], 46] 09:20:37.030 [debug] QUERY OK source="media_items" db=0.6ms idle=48.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "e6e48836-85bf-46d2-b83a-f2ee35ead2b5", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, false, false, 46, [], 98, ~U[2026-02-26 09:21:43Z], ~U[2026-04-30 14:20:37Z], ~U[2026-04-30 14:20:37Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, 46, ~U[2026-02-26 09:21:43Z]] 09:20:37.030 [debug] QUERY OK source="sources" db=0.2ms idle=37.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" = ?) [46] 09:20:37.031 [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] 09:20:37.031 [debug] QUERY OK source="media_items" db=0.1ms idle=2.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 [2358266] 09:20:37.032 [debug] Current batch of media processed. Will check again in 1000ms 09:20:38.032 [debug] Current batch of media processed. Will check again in 1000ms 09:20:39.034 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 684, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", "id" => "LrOuqMzKdAE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LrOuqMzKdAE", "playlist_index" => 3, "timestamp" => 1771588269, "title" => "MacOS *float vs Hyprland *tile", "upload_date" => "20260220"} 09:20:39.034 [debug] QUERY OK source="sources" db=0.2ms idle=53.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 (?)) [46] 09:20:39.035 [debug] QUERY OK source="sources" db=0.1ms idle=53.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" = ?) [46] 09:20:39.035 [debug] QUERY OK source="media_items" db=0.4ms idle=54.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 11:51:09Z], 46] 09:20:39.036 [debug] QUERY OK source="media_items" db=0.4ms idle=54.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "6e87dee7-7620-4663-bfd2-9f3169f8dd0e", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, false, false, 46, [], 98, ~U[2026-02-20 11:51:09Z], ~U[2026-04-30 14:20:39Z], ~U[2026-04-30 14:20:39Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, 46, ~U[2026-02-20 11:51:09Z]] 09:20:39.036 [debug] QUERY OK source="sources" db=0.1ms idle=41.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" = ?) [46] 09:20:39.036 [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] 09:20:39.037 [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 [2312061] 09:20:39.037 [debug] Current batch of media processed. Will check again in 1000ms 09:20:40.038 [debug] Current batch of media processed. Will check again in 1000ms 09:20:41.039 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 1711, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", "id" => "kD1VhTacIc8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kD1VhTacIc8", "playlist_index" => 4, "timestamp" => 1771110716, "title" => "freedom is a meme just like your life", "upload_date" => "20260214"} 09:20:41.039 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=58.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 (?)) [46] 09:20:41.040 [debug] QUERY OK source="sources" db=0.2ms idle=59.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" = ?) [46] 09:20:41.041 [debug] QUERY OK source="media_items" db=0.4ms idle=59.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 23:11:56Z], 46] 09:20:41.041 [debug] QUERY OK source="media_items" db=0.5ms idle=60.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "95ab17b7-806a-4863-ac89-0990298a6ac2", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, false, false, 46, [], 98, ~U[2026-02-14 23:11:56Z], ~U[2026-04-30 14:20:41Z], ~U[2026-04-30 14:20:41Z], "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, 46, ~U[2026-02-14 23:11:56Z]] 09:20:41.042 [debug] QUERY OK source="sources" db=0.1ms idle=45.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" = ?) [46] 09:20:41.042 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:20:41.042 [debug] QUERY OK source="media_items" db=0.1ms 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 [2269214] 09:20:41.042 [debug] Current batch of media processed. Will check again in 1000ms 09:20:42.042 [debug] Current batch of media processed. Will check again in 1000ms 09:20:43.044 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 748, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", "id" => "f4vblLRAYSg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f4vblLRAYSg", "playlist_index" => 5, "timestamp" => 1770629468, "title" => "Tibetan Anti-philosophy can end your DOOM Scrolling", "upload_date" => "20260209"} 09:20:43.045 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=63.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 (?)) [46] 09:20:43.046 [debug] QUERY OK source="sources" db=0.1ms idle=64.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" = ?) [46] 09:20:43.046 [debug] QUERY OK source="media_items" db=0.4ms idle=64.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-09 09:31:08Z], 46] 09:20:43.048 [debug] QUERY OK source="media_items" db=1.3ms idle=65.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "b8c79387-901f-4b31-b487-123f5e1a960d", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, false, false, 46, [], 98, ~U[2026-02-09 09:31:08Z], ~U[2026-04-30 14:20:43Z], ~U[2026-04-30 14:20:43Z], "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, 46, ~U[2026-02-09 09:31:08Z]] 09:20:43.048 [debug] QUERY OK source="sources" db=0.1ms idle=48.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" = ?) [46] 09:20:43.049 [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] 09:20:43.049 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2225383] 09:20:43.049 [debug] Current batch of media processed. Will check again in 1000ms 09:20:44.049 [debug] Current batch of media processed. Will check again in 1000ms 09:20:45.051 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 829, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", "id" => "f5qgJ9xThYs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f5qgJ9xThYs", "playlist_index" => 6, "timestamp" => 1769459768, "title" => "Freedom vs Compliance", "upload_date" => "20260126"} 09:20:45.051 [debug] QUERY OK source="sources" db=0.2ms idle=70.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 (?)) [46] 09:20:45.051 [debug] QUERY OK source="sources" db=0.1ms idle=70.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" = ?) [46] 09:20:45.052 [debug] QUERY OK source="media_items" db=0.5ms idle=70.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-26 20:36:08Z], 46] 09:20:45.053 [debug] QUERY OK source="media_items" db=0.4ms idle=71.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "5fa7a0f3-1379-4750-8d1b-3d8061947eb5", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, false, false, 46, [], 98, ~U[2026-01-26 20:36:08Z], ~U[2026-04-30 14:20:45Z], ~U[2026-04-30 14:20:45Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, 46, ~U[2026-01-26 20:36:08Z]] 09:20:45.053 [debug] QUERY OK source="sources" db=0.1ms idle=50.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" = ?) [46] 09:20:45.053 [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] 09:20:45.054 [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 [2117716] 09:20:45.054 [debug] Current batch of media processed. Will check again in 1000ms 09:20:46.055 [debug] Current batch of media processed. Will check again in 1000ms 09:20:47.056 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 727, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", "id" => "giQ_7l5p2Kg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "playlist_index" => 7, "timestamp" => 1768173959, "title" => "Why developers fail earning $$$ (independently) ?", "upload_date" => "20260111"} 09:20:47.056 [debug] QUERY OK source="sources" db=0.2ms idle=75.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 (?)) [46] 09:20:47.056 [debug] QUERY OK source="sources" db=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" = ?) [46] 09:20:47.057 [debug] QUERY OK source="media_items" db=0.5ms idle=76.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-11 23:25:59Z], 46] 09:20:47.058 [debug] QUERY OK source="media_items" db=0.6ms idle=76.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "bb41d797-a3d8-4e76-884f-9e3d4ca2a12b", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, false, false, 46, [], 98, ~U[2026-01-11 23:25:59Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, 46, ~U[2026-01-11 23:25:59Z]] 09:20:47.058 [debug] QUERY OK source="sources" db=0.1ms idle=52.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" = ?) [46] 09:20:47.059 [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] 09:20:47.059 [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 [1997905] 09:20:47.059 [debug] Current batch of media processed. Will check again in 1000ms 09:20:47.984 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCngn7SVujlvskHRvRKc1cTw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/6d/e1/6de14379e925ad68846a51c1b7a96537c1034ec15cd5300afc73932a69774991.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/63/01/63018653a43a2fa691679dacfc72037995860e5fb113bb78aa7456e6fcf873f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:20:47.984 [debug] Gracefully stopping file follower 09:20:47.985 [debug] QUERY OK source="sources" db=0.3ms idle=927.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 (?)) [46] 09:20:47.985 [debug] QUERY OK source="sources" db=0.1ms idle=926.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" = ?) [46] 09:20:47.985 [debug] QUERY OK source="media_items" db=0.4ms idle=926.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-28 21:27:59Z], 46] 09:20:47.986 [debug] QUERY OK source="media_items" db=0.4ms idle=926.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "f68bf231-80b3-4840-b15c-a1e585b2d522", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, false, false, 46, [], 98, ~U[2026-02-28 21:27:59Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "fLmIRC8R19s", 549, false, "https://www.youtube.com/watch?v=fLmIRC8R19s", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022800_Linux ⧸ FOSS are irrelevant in the future.mp4", false, 46, ~U[2026-02-28 21:27:59Z]] 09:20:47.986 [debug] QUERY OK source="sources" db=0.1ms idle=927.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" = ?) [46] 09:20:47.987 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 09:21:43Z], 46] 09:20:47.988 [debug] QUERY OK source="media_items" db=0.5ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "900c049a-83ef-4865-be07-643d52ea3880", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, false, false, 46, [], 98, ~U[2026-02-26 09:21:43Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022600_HOST FREE from home (no tunnel, no VPS, no Static IP).mp4", false, 46, ~U[2026-02-26 09:21:43Z]] 09:20:47.988 [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" = ?) [46] 09:20:47.988 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 11:51:09Z], 46] 09:20:47.989 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "ad93e1f2-cd6e-4948-aa33-b68df02cbdf7", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, false, false, 46, [], 98, ~U[2026-02-20 11:51:09Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022000_MacOS *float vs Hyprland *tile.mp4", false, 46, ~U[2026-02-20 11:51:09Z]] 09:20:47.989 [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" = ?) [46] 09:20:47.990 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 23:11:56Z], 46] 09:20:47.990 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "d7edf5e7-712a-4b3b-8be3-c8e15c30068a", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, false, false, 46, [], 98, ~U[2026-02-14 23:11:56Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "- https://youtu.be/2BO83Ig-E8E\n- https://youtu.be/yZVuMhbNE9s\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "freedom is a meme just like your life", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e021400_freedom is a meme just like your life.mp4", false, 46, ~U[2026-02-14 23:11:56Z]] 09:20:47.991 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [46] 09:20:47.991 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-09 09:31:08Z], 46] 09:20:47.992 [debug] QUERY OK source="media_items" db=0.5ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "54a23468-87c4-47d3-8af4-3443860e2997", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, false, false, 46, [], 98, ~U[2026-02-09 09:31:08Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "Donation (I put no ads) - https://paypal.me/bugswriter \nMy Mantra Page - https://bugswriter.com/mantra\n\nmaterial - \n- https://plato.stanford.edu/entries/nagarjuna/\n- https://youtu.be/FbZDqFyTWzk\n- https://youtu.be/VIwObHep47s\n- seeker to seeker - emptiness video & 12 link of dependent origination\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Tibetan Anti-philosophy can end your DOOM Scrolling", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e020900_Tibetan Anti-philosophy can end your DOOM Scrolling.mp4", false, 46, ~U[2026-02-09 09:31:08Z]] 09:20:47.992 [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" = ?) [46] 09:20:47.992 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-26 20:36:08Z], 46] 09:20:47.993 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "9703e08c-81ad-4693-b3aa-273617ac9e7b", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, false, false, 46, [], 98, ~U[2026-01-26 20:36:08Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e012600_Freedom vs Compliance.mp4", false, 46, ~U[2026-01-26 20:36:08Z]] 09:20:47.993 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [46] 09:20:47.994 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-11 23:25:59Z], 46] 09:20:47.994 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "d3bae5b1-7d08-4597-97a6-bc589adad526", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, false, false, 46, [], 98, ~U[2026-01-11 23:25:59Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Why developers fail earning $$$ (independently) ?", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e011100_Why developers fail earning $$$ (independently) ?.mp4", false, 46, ~U[2026-01-11 23:25:59Z]] 09:20:47.995 [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" = ?) [46] 09:20:47.995 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 22:38:39Z], 46] 09:20:47.996 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "204001fc-ca30-4c49-becd-0a8b5fad5bce", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, false, 46, [], 98, ~U[2025-12-27 22:38:39Z], ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, 46, ~U[2025-12-27 22:38:39Z]] 09:20:47.996 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z], 46] 09:20:47.996 [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" FROM "media_items" AS m0 INNER JOIN "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")))) [46] 09:20:47.997 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms 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")))) [46] 09:20:47.997 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 09:20:47.999 [debug] QUERY OK source="tasks" db=0.2ms idle=1.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300667, 46, ~U[2026-04-30 14:20:47Z], ~U[2026-04-30 14:20:47Z]] 09:20:47.999 [info] {"args":{"id":46},"id":300581,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":17007347,"event":"job:stop","queue_time":432189,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:21:00.859 [info] {"source":"oban","duration":140,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:21:06.349 [info] {"source":"oban","duration":3234,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:36.353 [info] {"source":"oban","duration":3766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:22:00.860 [info] {"source":"oban","duration":250,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:22:06.358 [info] {"source":"oban","duration":4010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:22:36.361 [info] {"source":"oban","duration":2865,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:00.861 [info] {"source":"oban","duration":359,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:23:06.365 [info] {"source":"oban","duration":2468,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:25.251 [info] {"args":{"id":45},"id":300582,"meta":{},"system_time":1777559005251521546,"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"]} 09:23:25.251 [debug] QUERY OK source="sources" db=0.1ms idle=1270.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" = ?) [45] 09:23:25.252 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:23:25.254 [debug] QUERY OK source="media_items" db=1.5ms idle=1010.9ms 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")))) [45] 09:23:25.260 [debug] QUERY OK source="media_items" db=6.8ms idle=10.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 09:23:25.261 [debug] QUERY OK source="media_profiles" db=0.0ms idle=9.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] 09:23:25.261 [debug] QUERY OK source="settings" db=0.0ms idle=9.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:23:25.261 [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 [] 09:23:25.263 [debug] QUERY OK source="media_items" db=1.0ms idle=8.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" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [45] 09:23:25.265 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:23:25.265 [debug] Current batch of media processed. Will check again in 1000ms 09:23:25.265 [debug] QUERY OK source="settings" db=0.1ms idle=4.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 [] 09:23:25.265 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 09:23:25.265 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:23:25.265 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/1f/0c/1f0cb4a78c794faffaf305d5582b209e692592590ec701be05a90a611cb32423.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/21/33/21334bdde27bbdb9f00fa47a20c8405dd2d7f677e410d56b9897064130217dc0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:23:26.266 [debug] Current batch of media processed. Will check again in 1000ms 09:23:27.266 [debug] Current batch of media processed. Will check again in 1000ms 09:23:28.268 [debug] Current batch of media processed. Will check again in 1000ms 09:23:29.269 [debug] Current batch of media processed. Will check again in 1000ms 09:23:30.270 [debug] Current batch of media processed. Will check again in 1000ms 09:23:31.271 [debug] Current batch of media processed. Will check again in 1000ms 09:23:32.272 [debug] Current batch of media processed. Will check again in 1000ms 09:23:33.273 [debug] Current batch of media processed. Will check again in 1000ms 09:23:34.274 [debug] Current batch of media processed. Will check again in 1000ms 09:23:35.275 [debug] Current batch of media processed. Will check again in 1000ms 09:23:36.277 [debug] Current batch of media processed. Will check again in 1000ms 09:23:36.369 [info] {"source":"oban","duration":3166,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:37.277 [debug] Current batch of media processed. Will check again in 1000ms 09:23:38.279 [debug] Current batch of media processed. Will check again in 1000ms 09:23:39.280 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 523, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", "id" => "xQO7svoRelw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xQO7svoRelw", "playlist_index" => 1, "timestamp" => 1777511969, "title" => "Canonical Is Adding AI to Ubuntu", "upload_date" => "20260430"} 09:23:39.280 [debug] QUERY OK source="sources" db=0.1ms idle=1013.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 (?)) [45] 09:23:39.280 [debug] QUERY OK source="sources" db=0.1ms idle=299.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" = ?) [45] 09:23:39.282 [debug] QUERY OK source="media_items" db=1.3ms idle=299.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 01:19:29Z], 45] 09:23:39.283 [debug] QUERY OK source="media_items" db=0.6ms idle=301.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "59759f4b-613c-41bf-8d05-ab1d922c3b99", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2026-04-30 01:19:29Z], ~U[2026-04-30 14:23:39Z], ~U[2026-04-30 14:23:39Z], "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, 45, ~U[2026-04-30 01:19:29Z]] 09:23:39.283 [debug] QUERY OK source="sources" db=0.4ms idle=14.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" = ?) [45] 09:23:39.284 [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] 09:23:39.284 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2841980] 09:23:39.284 [debug] Current batch of media processed. Will check again in 1000ms 09:23:40.285 [debug] Current batch of media processed. Will check again in 1000ms 09:23:41.286 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 543, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", "id" => "u3XlqKBeONY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=u3XlqKBeONY", "playlist_index" => 2, "timestamp" => 1777138036, "title" => "When The AI Model Comes With RCE", "upload_date" => "20260425"} 09:23:41.287 [debug] QUERY OK source="sources" db=0.1ms idle=305.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 (?)) [45] 09:23:41.287 [debug] QUERY OK source="sources" db=0.1ms idle=306.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" = ?) [45] 09:23:41.289 [debug] QUERY OK source="media_items" db=1.4ms idle=306.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:27:16Z], 45] 09:23:41.290 [debug] QUERY OK source="media_items" db=1.4ms idle=308.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "865e4b02-2224-462b-9432-503e01b6d86f", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, false, false, 45, [], 98, ~U[2026-04-25 17:27:16Z], ~U[2026-04-30 14:23:41Z], ~U[2026-04-30 14:23:41Z], "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, 45, ~U[2026-04-25 17:27:16Z]] 09:23:41.291 [debug] QUERY OK source="sources" db=0.1ms idle=20.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" = ?) [45] 09:23:41.291 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:23:41.291 [debug] QUERY OK source="media_items" db=0.1ms 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 [2808375] 09:23:41.291 [debug] Current batch of media processed. Will check again in 1000ms 09:23:42.292 [debug] Current batch of media processed. Will check again in 1000ms 09:23:43.293 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 514, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", "id" => "ThTJAlYGqkE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ThTJAlYGqkE", "playlist_index" => 3, "timestamp" => 1776475697, "title" => "France Is Ditching Windows for Linux", "upload_date" => "20260418"} 09:23:43.293 [debug] QUERY OK source="sources" db=0.2ms idle=312.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 (?)) [45] 09:23:43.294 [debug] QUERY OK source="sources" db=0.1ms idle=312.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" = ?) [45] 09:23:43.295 [debug] QUERY OK source="media_items" db=1.3ms idle=312.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 01:28:17Z], 45] 09:23:43.296 [debug] QUERY OK source="media_items" db=0.8ms idle=314.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "ada83e03-18b8-480a-8ffb-0baff9daad54", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, false, false, 45, [], 98, ~U[2026-04-18 01:28:17Z], ~U[2026-04-30 14:23:43Z], ~U[2026-04-30 14:23:43Z], "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, 45, ~U[2026-04-18 01:28:17Z]] 09:23:43.296 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:23:43.297 [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] 09:23:43.297 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2749206] 09:23:43.297 [debug] Current batch of media processed. Will check again in 1000ms 09:23:44.298 [debug] Current batch of media processed. Will check again in 1000ms 09:23:45.299 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 515, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", "id" => "MsAOy_mSp_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MsAOy_mSp_4", "playlist_index" => 4, "timestamp" => 1776126540, "title" => "Your Home Router Might Be In Danger", "upload_date" => "20260414"} 09:23:45.300 [debug] QUERY OK source="sources" db=0.2ms idle=318.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 (?)) [45] 09:23:45.300 [debug] QUERY OK source="sources" db=0.1ms idle=319.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" = ?) [45] 09:23:45.302 [debug] QUERY OK source="media_items" db=1.5ms idle=319.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 00:29:00Z], 45] 09:23:45.324 [debug] QUERY OK source="media_items" db=22.4ms idle=321.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "608ed880-2407-413f-baa3-a7fa4aa0c8fb", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, false, false, 45, [], 98, ~U[2026-04-14 00:29:00Z], ~U[2026-04-30 14:23:45Z], ~U[2026-04-30 14:23:45Z], "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, 45, ~U[2026-04-14 00:29:00Z]] 09:23:45.325 [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" = ?) [45] 09:23:45.325 [debug] QUERY OK source="media_profiles" db=0.2ms idle=25.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] 09:23:45.326 [debug] QUERY OK source="media_items" db=0.1ms idle=25.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 [2723981] 09:23:45.326 [debug] Current batch of media processed. Will check again in 1000ms 09:23:46.327 [debug] Current batch of media processed. Will check again in 1000ms 09:23:47.328 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 889, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", "id" => "la21SXOll6c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=la21SXOll6c", "playlist_index" => 5, "timestamp" => 1775739724, "title" => "Install Arch Linux The Lazy Way", "upload_date" => "20260409"} 09:23:47.328 [debug] QUERY OK source="sources" db=0.2ms idle=347.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 (?)) [45] 09:23:47.328 [debug] QUERY OK source="sources" db=0.1ms idle=347.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" = ?) [45] 09:23:47.330 [debug] QUERY OK source="media_items" db=1.8ms idle=347.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:02:04Z], 45] 09:23:47.336 [debug] QUERY OK source="media_items" db=4.8ms idle=350.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "c937e25c-362d-42c0-ac0b-7ff1be9a9d70", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, false, false, 45, [], 98, ~U[2026-04-09 13:02:04Z], ~U[2026-04-30 14:23:47Z], ~U[2026-04-30 14:23:47Z], "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, 45, ~U[2026-04-09 13:02:04Z]] 09:23:47.336 [debug] QUERY OK source="sources" db=0.2ms idle=57.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" = ?) [45] 09:23:47.337 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.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] 09:23:47.337 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [2688305] 09:23:47.337 [debug] Current batch of media processed. Will check again in 1000ms 09:23:48.338 [debug] Current batch of media processed. Will check again in 1000ms 09:23:49.339 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 659, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", "id" => "J6SFrdHOuFM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=J6SFrdHOuFM", "playlist_index" => 6, "timestamp" => 1775004780, "title" => "Uncomplicated Firewall Guide", "upload_date" => "20260401"} 09:23:49.340 [debug] QUERY OK source="sources" db=0.2ms idle=358.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 (?)) [45] 09:23:49.340 [debug] QUERY OK source="sources" db=0.0ms idle=359.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" = ?) [45] 09:23:49.342 [debug] QUERY OK source="media_items" db=1.3ms idle=359.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 00:53:00Z], 45] 09:23:49.343 [debug] QUERY OK source="media_items" db=1.5ms idle=361.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "f5381af5-b46e-4653-a8b4-ad31cacb2e1b", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, false, false, 45, [], 98, ~U[2026-04-01 00:53:00Z], ~U[2026-04-30 14:23:49Z], ~U[2026-04-30 14:23:49Z], "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, 45, ~U[2026-04-01 00:53:00Z]] 09:23:49.344 [debug] QUERY OK source="sources" db=0.2ms idle=63.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" = ?) [45] 09:23:49.344 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:23:49.344 [debug] QUERY OK source="media_items" db=0.1ms 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 [2619987] 09:23:49.344 [debug] Current batch of media processed. Will check again in 1000ms 09:23:50.345 [debug] Current batch of media processed. Will check again in 1000ms 09:23:51.347 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 1125, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", "id" => "oc6WOCx1vCE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oc6WOCx1vCE", "playlist_index" => 7, "timestamp" => 1774389532, "title" => "Making Linux Ungovernable With I2P", "upload_date" => "20260324"} 09:23:51.348 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 09:23:51.348 [debug] QUERY OK source="sources" db=0.1ms idle=367.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" = ?) [45] 09:23:51.350 [debug] QUERY OK source="media_items" db=1.4ms idle=367.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 21:58:52Z], 45] 09:23:51.351 [debug] QUERY OK source="media_items" db=0.8ms idle=369.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "f461bd0b-f8d1-4f99-8314-4bbb14f2aea5", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, false, false, 45, [], 98, ~U[2026-03-24 21:58:52Z], ~U[2026-04-30 14:23:51Z], ~U[2026-04-30 14:23:51Z], "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, 45, ~U[2026-03-24 21:58:52Z]] 09:23:51.351 [debug] QUERY OK source="sources" db=0.1ms idle=67.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" = ?) [45] 09:23:51.351 [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] 09:23:51.352 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2565295] 09:23:51.352 [debug] Current batch of media processed. Will check again in 1000ms 09:23:52.353 [debug] Current batch of media processed. Will check again in 1000ms 09:23:53.354 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 532, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", "id" => "4KyiLyOxux8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4KyiLyOxux8", "playlist_index" => 8, "timestamp" => 1773529831, "title" => "Meta Spent Millions To Push The New Age Check Laws", "upload_date" => "20260314"} 09:23:53.354 [debug] QUERY OK source="sources" db=0.2ms idle=373.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 (?)) [45] 09:23:53.355 [debug] QUERY OK source="sources" db=0.2ms idle=373.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" = ?) [45] 09:23:53.356 [debug] QUERY OK source="media_items" db=1.4ms idle=374.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-14 23:10:31Z], 45] 09:23:53.357 [debug] QUERY OK source="media_items" db=0.8ms idle=375.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "2c4af67c-063c-4ab5-bba3-e578bfd2754e", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, false, false, 45, [], 98, ~U[2026-03-14 23:10:31Z], ~U[2026-04-30 14:23:53Z], ~U[2026-04-30 14:23:53Z], "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, 45, ~U[2026-03-14 23:10:31Z]] 09:23:53.358 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:23:53.358 [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] 09:23:53.358 [debug] QUERY OK source="media_items" db=0.1ms 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 [2488162] 09:23:53.358 [debug] Current batch of media processed. Will check again in 1000ms 09:23:54.359 [debug] Current batch of media processed. Will check again in 1000ms 09:23:55.360 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 526, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", "id" => "hiMqdYh9LNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hiMqdYh9LNU", "playlist_index" => 9, "timestamp" => 1773332609, "title" => "The Online ID Check Situation is Crazy", "upload_date" => "20260312"} 09:23:55.360 [debug] QUERY OK source="sources" db=0.1ms idle=379.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 (?)) [45] 09:23:55.360 [debug] QUERY OK source="sources" db=0.1ms idle=379.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" = ?) [45] 09:23:55.362 [debug] QUERY OK source="media_items" db=1.5ms idle=379.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 16:23:29Z], 45] 09:23:55.363 [debug] QUERY OK source="media_items" db=0.7ms idle=381.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "1c035612-6e7c-4132-9507-cd2bfc94ecc7", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, false, false, 45, [], 98, ~U[2026-03-12 16:23:29Z], ~U[2026-04-30 14:23:55Z], ~U[2026-04-30 14:23:55Z], "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, 45, ~U[2026-03-12 16:23:29Z]] 09:23:55.363 [debug] QUERY OK source="sources" db=0.1ms idle=74.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" = ?) [45] 09:23:55.364 [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] 09:23:55.364 [debug] QUERY OK source="media_items" db=0.1ms 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 [2470150] 09:23:55.364 [debug] Current batch of media processed. Will check again in 1000ms 09:23:56.365 [debug] Current batch of media processed. Will check again in 1000ms 09:23:57.366 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 1142, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", "id" => "K3QOAVrhGTg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=K3QOAVrhGTg", "playlist_index" => 10, "timestamp" => 1773183113, "title" => "Installing Linux Just Got Easier", "upload_date" => "20260310"} 09:23:57.366 [debug] QUERY OK source="sources" db=0.2ms idle=385.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 (?)) [45] 09:23:57.366 [debug] QUERY OK source="sources" db=0.0ms idle=385.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" = ?) [45] 09:23:57.368 [debug] QUERY OK source="media_items" db=1.2ms idle=385.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-10 22:51:53Z], 45] 09:23:57.369 [debug] QUERY OK source="media_items" db=0.8ms idle=387.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "023c9add-2ab5-497a-8adb-1baa410a23e3", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, false, false, 45, [], 98, ~U[2026-03-10 22:51:53Z], ~U[2026-04-30 14:23:57Z], ~U[2026-04-30 14:23:57Z], "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, 45, ~U[2026-03-10 22:51:53Z]] 09:23:57.369 [debug] QUERY OK source="sources" db=0.1ms idle=76.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" = ?) [45] 09:23:57.370 [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] 09:23:57.370 [debug] QUERY OK source="media_items" db=0.1ms 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 [2456354] 09:23:57.370 [debug] Current batch of media processed. Will check again in 1000ms 09:23:58.371 [debug] Current batch of media processed. Will check again in 1000ms 09:23:59.372 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 579, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", "id" => "QKzRf8B-oDk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QKzRf8B-oDk", "playlist_index" => 11, "timestamp" => 1772743952, "title" => "Online Age Checks Are Going Too Far", "upload_date" => "20260305"} 09:23:59.372 [debug] QUERY OK source="sources" db=0.3ms idle=391.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 (?)) [45] 09:23:59.373 [debug] QUERY OK source="sources" db=0.0ms idle=392.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" = ?) [45] 09:23:59.374 [debug] QUERY OK source="media_items" db=1.4ms idle=392.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 20:52:32Z], 45] 09:23:59.376 [debug] QUERY OK source="media_items" db=0.8ms idle=394.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "c95fbfbf-ab49-4778-9b6e-c42716af3d50", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, false, false, 45, [], 98, ~U[2026-03-05 20:52:32Z], ~U[2026-04-30 14:23:59Z], ~U[2026-04-30 14:23:59Z], "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, 45, ~U[2026-03-05 20:52:32Z]] 09:23:59.376 [debug] QUERY OK source="sources" db=0.1ms idle=80.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" = ?) [45] 09:23:59.376 [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] 09:23:59.376 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2416737] 09:23:59.377 [debug] Current batch of media processed. Will check again in 1000ms 09:24:00.378 [debug] Current batch of media processed. Will check again in 1000ms 09:24:00.863 [info] {"source":"oban","duration":223,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:24:01.379 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 523, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", "id" => "GSRXY3_yeN4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GSRXY3_yeN4", "playlist_index" => 12, "timestamp" => 1772150862, "title" => "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "upload_date" => "20260227"} 09:24:01.379 [debug] QUERY OK source="sources" db=0.2ms idle=516.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 (?)) [45] 09:24:01.380 [debug] QUERY OK source="sources" db=0.1ms idle=398.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" = ?) [45] 09:24:01.381 [debug] QUERY OK source="media_items" db=1.6ms idle=399.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 00:07:42Z], 45] 09:24:01.383 [debug] QUERY OK source="media_items" db=0.9ms idle=401.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "6ad9b6b8-24dd-4031-9b05-00c324d09143", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, false, false, 45, [], 98, ~U[2026-02-27 00:07:42Z], ~U[2026-04-30 14:24:01Z], ~U[2026-04-30 14:24:01Z], "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, 45, ~U[2026-02-27 00:07:42Z]] 09:24:01.383 [debug] QUERY OK source="sources" db=0.1ms idle=85.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" = ?) [45] 09:24:01.384 [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] 09:24:01.384 [debug] QUERY OK source="media_items" db=0.1ms 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 [2363193] 09:24:01.384 [debug] Current batch of media processed. Will check again in 1000ms 09:24:02.384 [debug] Current batch of media processed. Will check again in 1000ms 09:24:03.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 511, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", "id" => "eRyOdsLaPKE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eRyOdsLaPKE", "playlist_index" => 13, "timestamp" => 1771971511, "title" => "Facebook Will Simulate Dead Users With AI", "upload_date" => "20260224"} 09:24:03.387 [debug] QUERY OK source="sources" db=0.2ms idle=405.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 (?)) [45] 09:24:03.387 [debug] QUERY OK source="sources" db=0.1ms idle=406.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" = ?) [45] 09:24:03.389 [debug] QUERY OK source="media_items" db=1.4ms idle=406.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-24 22:18:31Z], 45] 09:24:03.390 [debug] QUERY OK source="media_items" db=0.8ms idle=408.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "d6d04d11-ff8a-42a4-aeec-66aec9b45533", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, false, false, 45, [], 98, ~U[2026-02-24 22:18:31Z], ~U[2026-04-30 14:24:03Z], ~U[2026-04-30 14:24:03Z], "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, 45, ~U[2026-02-24 22:18:31Z]] 09:24:03.390 [debug] QUERY OK source="sources" db=0.1ms idle=89.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" = ?) [45] 09:24:03.390 [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] 09:24:03.391 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2347026] 09:24:03.391 [debug] Current batch of media processed. Will check again in 1000ms 09:24:04.392 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 504, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", "id" => "uBibexTkY-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uBibexTkY-M", "playlist_index" => 14, "timestamp" => 1771548693, "title" => "Discord Will Be Used To Spy On You", "upload_date" => "20260220"} 09:24:04.392 [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 (?)) [45] 09:24:04.393 [debug] QUERY OK source="sources" db=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" = ?) [45] 09:24:04.394 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:51:33Z], 45] 09:24:04.395 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "2ca1734a-38c0-457e-9431-949e0b71f40b", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, false, false, 45, [], 98, ~U[2026-02-20 00:51:33Z], ~U[2026-04-30 14:24:04Z], ~U[2026-04-30 14:24:04Z], "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, 45, ~U[2026-02-20 00:51:33Z]] 09:24:04.395 [debug] QUERY OK source="sources" db=0.2ms idle=93.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" = ?) [45] 09:24:04.396 [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] 09:24:04.396 [debug] QUERY OK source="media_items" db=0.1ms 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 [2308517] 09:24:04.396 [debug] Current batch of media processed. Will check again in 1000ms 09:24:05.397 [debug] Current batch of media processed. Will check again in 1000ms 09:24:06.373 [info] {"source":"oban","duration":3226,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:24:06.398 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 501, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", "id" => "MGisfDrdbGo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MGisfDrdbGo", "playlist_index" => 15, "timestamp" => 1771108411, "title" => "Chinese Hackers Hijack Notepad++ Updates", "upload_date" => "20260214"} 09:24:06.398 [debug] QUERY OK source="sources" db=0.1ms idle=417.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 (?)) [45] 09:24:06.398 [debug] QUERY OK source="sources" db=0.1ms idle=417.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" = ?) [45] 09:24:06.400 [debug] QUERY OK source="media_items" db=1.3ms idle=417.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 22:33:31Z], 45] 09:24:06.401 [debug] QUERY OK source="media_items" db=0.9ms idle=96.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "054d9dcf-4bd4-42fc-839f-a5246f4af91c", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, false, false, 45, [], 98, ~U[2026-02-14 22:33:31Z], ~U[2026-04-30 14:24:06Z], ~U[2026-04-30 14:24:06Z], "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, 45, ~U[2026-02-14 22:33:31Z]] 09:24:06.402 [debug] QUERY OK source="sources" db=0.3ms idle=28.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" = ?) [45] 09:24:06.402 [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] 09:24:06.402 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2268722] 09:24:06.402 [debug] Current batch of media processed. Will check again in 1000ms 09:24:07.403 [debug] Current batch of media processed. Will check again in 1000ms 09:24:08.404 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 540, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", "id" => "I2qjQawDqXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I2qjQawDqXs", "playlist_index" => 16, "timestamp" => 1770336498, "title" => "Stop Using BitLocker", "upload_date" => "20260206"} 09:24:08.405 [debug] QUERY OK source="sources" db=0.3ms idle=423.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 (?)) [45] 09:24:08.405 [debug] QUERY OK source="sources" db=0.2ms idle=424.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" = ?) [45] 09:24:08.407 [debug] QUERY OK source="media_items" db=1.4ms idle=424.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-06 00:08:18Z], 45] 09:24:08.408 [debug] QUERY OK source="media_items" db=0.8ms idle=426.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "ad0718e8-9ccc-4228-b8b3-c84a677ff53e", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, false, false, 45, [], 98, ~U[2026-02-06 00:08:18Z], ~U[2026-04-30 14:24:08Z], ~U[2026-04-30 14:24:08Z], "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, 45, ~U[2026-02-06 00:08:18Z]] 09:24:08.408 [debug] QUERY OK source="sources" db=0.2ms idle=101.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" = ?) [45] 09:24:08.409 [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] 09:24:08.409 [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 [2198703] 09:24:08.409 [debug] Current batch of media processed. Will check again in 1000ms 09:24:09.409 [debug] Current batch of media processed. Will check again in 1000ms 09:24:10.411 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 915, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", "id" => "aaTvRDsdy0s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aaTvRDsdy0s", "playlist_index" => 17, "timestamp" => 1769216799, "title" => "Photoshop Finally Works on Linux", "upload_date" => "20260124"} 09:24:10.411 [debug] QUERY OK source="sources" db=0.4ms idle=430.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 (?)) [45] 09:24:10.412 [debug] QUERY OK source="sources" db=0.1ms idle=430.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" = ?) [45] 09:24:10.413 [debug] QUERY OK source="media_items" db=1.3ms idle=431.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-24 01:06:39Z], 45] 09:24:10.414 [debug] QUERY OK source="media_items" db=0.9ms idle=432.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "a1b8b654-523e-43cc-9b82-aba90e3af89c", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, false, false, 45, [], 98, ~U[2026-01-24 01:06:39Z], ~U[2026-04-30 14:24:10Z], ~U[2026-04-30 14:24:10Z], "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, 45, ~U[2026-01-24 01:06:39Z]] 09:24:10.415 [debug] QUERY OK source="sources" db=0.1ms idle=104.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" = ?) [45] 09:24:10.415 [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] 09:24:10.416 [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 [2095473] 09:24:10.416 [debug] Current batch of media processed. Will check again in 1000ms 09:24:11.416 [debug] Current batch of media processed. Will check again in 1000ms 09:24:12.418 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 659, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", "id" => "FyejToP1cjA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FyejToP1cjA", "playlist_index" => 18, "timestamp" => 1768678789, "title" => "TuxMate Makes Linux Desktop Setup a Breeze", "upload_date" => "20260117"} 09:24:12.418 [debug] QUERY OK source="sources" db=0.3ms idle=437.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 (?)) [45] 09:24:12.419 [debug] QUERY OK source="sources" db=0.1ms idle=437.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" = ?) [45] 09:24:12.420 [debug] QUERY OK source="media_items" db=1.3ms idle=438.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-17 19:39:49Z], 45] 09:24:12.424 [debug] QUERY OK source="media_items" db=3.3ms idle=439.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "8d975041-eb22-4bf9-a5c3-a30f31df661b", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, false, false, 45, [], 98, ~U[2026-01-17 19:39:49Z], ~U[2026-04-30 14:24:12Z], ~U[2026-04-30 14:24:12Z], "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, 45, ~U[2026-01-17 19:39:49Z]] 09:24:12.424 [debug] QUERY OK source="sources" db=0.2ms idle=111.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" = ?) [45] 09:24:12.424 [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] 09:24:12.425 [debug] QUERY OK source="media_items" db=0.1ms 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 [2045180] 09:24:12.425 [debug] Current batch of media processed. Will check again in 1000ms 09:24:13.425 [debug] Current batch of media processed. Will check again in 1000ms 09:24:14.427 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 651, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", "id" => "BgeLeT4CoyY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BgeLeT4CoyY", "playlist_index" => 19, "timestamp" => 1767652650, "title" => "CachyOS Is Coming For Your Server", "upload_date" => "20260105"} 09:24:14.428 [debug] QUERY OK source="sources" db=0.2ms idle=446.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 (?)) [45] 09:24:14.428 [debug] QUERY OK source="sources" db=0.2ms idle=447.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" = ?) [45] 09:24:14.430 [debug] QUERY OK source="media_items" db=1.3ms idle=447.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-05 22:37:30Z], 45] 09:24:14.431 [debug] QUERY OK source="media_items" db=0.7ms idle=449.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "af7c25ff-14a3-40dd-968c-4bba605616fc", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, false, false, 45, [], 98, ~U[2026-01-05 22:37:30Z], ~U[2026-04-30 14:24:14Z], ~U[2026-04-30 14:24:14Z], "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, 45, ~U[2026-01-05 22:37:30Z]] 09:24:14.431 [debug] QUERY OK source="sources" db=0.1ms idle=115.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" = ?) [45] 09:24:14.431 [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] 09:24:14.432 [debug] QUERY OK source="media_items" db=0.1ms 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 [1949827] 09:24:14.432 [debug] Current batch of media processed. Will check again in 1000ms 09:24:15.432 [debug] Current batch of media processed. Will check again in 1000ms 09:24:16.434 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "duration" => 764, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", "id" => "6GNqGZXHXpo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6GNqGZXHXpo", "playlist_index" => 20, "timestamp" => 1766623106, "title" => "When You Forget To Redact The Epstein Files", "upload_date" => "20251225"} 09:24:16.434 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [45] 09:24:16.435 [debug] QUERY OK source="sources" db=0.1ms idle=453.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" = ?) [45] 09:24:16.436 [debug] QUERY OK source="media_items" db=1.4ms idle=454.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 00:38:26Z], 45] 09:24:16.437 [debug] QUERY OK source="media_items" db=0.9ms idle=455.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "26bc0cdd-60c2-4f5e-bca7-c62ade2cc419", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, false, 45, [], 98, ~U[2025-12-25 00:38:26Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, 45, ~U[2025-12-25 00:38:26Z]] 09:24:16.438 [debug] QUERY OK source="sources" db=0.1ms idle=118.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" = ?) [45] 09:24:16.438 [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] 09:24:16.438 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [1854320] 09:24:16.438 [debug] Current batch of media processed. Will check again in 1000ms 09:24:16.484 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/1f/0c/1f0cb4a78c794faffaf305d5582b209e692592590ec701be05a90a611cb32423.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/21/33/21334bdde27bbdb9f00fa47a20c8405dd2d7f677e410d56b9897064130217dc0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:24:16.485 [debug] Gracefully stopping file follower 09:24:16.485 [debug] QUERY OK source="sources" db=0.4ms idle=48.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 (?)) [45] 09:24:16.486 [debug] QUERY OK source="sources" db=0.0ms idle=48.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" = ?) [45] 09:24:16.487 [debug] QUERY OK source="media_items" db=1.2ms idle=48.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 01:19:29Z], 45] 09:24:16.488 [debug] QUERY OK source="media_items" db=0.7ms idle=49.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "890c3783-943a-4207-996b-4cdacb58a638", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2026-04-30 01:19:29Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how Canonical Is planning to add AI features into Ubuntu.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Canonical Is Adding AI to Ubuntu", "xQO7svoRelw", 523, false, "https://www.youtube.com/watch?v=xQO7svoRelw", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e043000_Canonical Is Adding AI to Ubuntu.mp4", false, 45, ~U[2026-04-30 01:19:29Z]] 09:24:16.488 [debug] QUERY OK source="sources" db=0.1ms idle=49.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" = ?) [45] 09:24:16.490 [debug] QUERY OK source="media_items" db=1.1ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:27:16Z], 45] 09:24:16.491 [debug] QUERY OK source="media_items" db=0.8ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "1e6f1afd-c45d-4f4b-86b5-e9f4d8f0bd38", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, false, false, 45, [], 98, ~U[2026-04-25 17:27:16Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss CVE-2026-5760 a critical remote code execution vulnerabilties that was discovered in SGLang's Jinja Templating engine. If you're running SGLang it's recommended to use sandboxed jinja templates and ensure you aren't loading malicious GGUF Models to avoid a takeover of your AI server.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When The AI Model Comes With RCE", "u3XlqKBeONY", 543, false, "https://www.youtube.com/watch?v=u3XlqKBeONY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e042500_When The AI Model Comes With RCE.mp4", false, 45, ~U[2026-04-25 17:27:16Z]] 09:24:16.491 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.492 [debug] QUERY OK source="media_items" db=1.2ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 01:28:17Z], 45] 09:24:16.494 [debug] QUERY OK source="media_items" db=0.8ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "21da1639-5698-4f46-8a7b-76af3c84eadc", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, false, false, 45, [], 98, ~U[2026-04-18 01:28:17Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss Frances 20+ year transition away from proprietary Microsoft software like Windows Office 365 to free and open source software like Linux and OpenOffice, as well as their development of their own Linux distros (GendBuntu and Securix) and their own office suite (LaSuite)\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "France Is Ditching Windows for Linux", "ThTJAlYGqkE", 514, false, "https://www.youtube.com/watch?v=ThTJAlYGqkE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041800_France Is Ditching Windows for Linux.mp4", false, 45, ~U[2026-04-18 01:28:17Z]] 09:24:16.494 [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" = ?) [45] 09:24:16.495 [debug] QUERY OK source="media_items" db=1.1ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 00:29:00Z], 45] 09:24:16.496 [debug] QUERY OK source="media_items" db=0.7ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "e6d35ac9-df72-4be8-a902-5f3275fdd6f2", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, false, false, 45, [], 98, ~U[2026-04-14 00:29:00Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss the governments recent warning about foreign routers and state sponsored hacking of SOHO routers and how you can protect yourself from these router exploits.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Your Home Router Might Be In Danger", "MsAOy_mSp_4", 515, false, "https://www.youtube.com/watch?v=MsAOy_mSp_4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e041400_Your Home Router Might Be In Danger.mp4", false, 45, ~U[2026-04-14 00:29:00Z]] 09:24:16.497 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.498 [debug] QUERY OK source="media_items" db=1.1ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:02:04Z], 45] 09:24:16.499 [debug] QUERY OK source="media_items" db=0.7ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "4f4c8980-60f5-49a2-a022-d142230b33c8", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, false, false, 45, [], 98, ~U[2026-04-09 13:02:04Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I show you how to use archinstall 4.0 to easily deploy an arch Linux machine and create reproducible Arch Linux builds.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Install Arch Linux The Lazy Way", "la21SXOll6c", 889, false, "https://www.youtube.com/watch?v=la21SXOll6c", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040900_Install Arch Linux The Lazy Way.mp4", false, 45, ~U[2026-04-09 13:02:04Z]] 09:24:16.499 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 09:24:16.500 [debug] QUERY OK source="media_items" db=1.0ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 00:53:00Z], 45] 09:24:16.501 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "5c27cb08-c317-4ef1-a127-78db888550d5", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, false, false, 45, [], 98, ~U[2026-04-01 00:53:00Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I give you an uncomplicated breakdown on ufw (the uncomplicated firewall) in this video I cover how to configure a firewall on your Linux system.\n\n0:00 Intro\n0:06 What is UFW?\n0:47 UFW Default Rules\n1:26 Implicit Deny\n3:32 UFW Application Profiles\n7:23 How to Configure a Secure Firewall\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Uncomplicated Firewall Guide", "J6SFrdHOuFM", 659, false, "https://www.youtube.com/watch?v=J6SFrdHOuFM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e040100_Uncomplicated Firewall Guide.mp4", false, 45, ~U[2026-04-01 00:53:00Z]] 09:24:16.502 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.503 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 21:58:52Z], 45] 09:24:16.504 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "6caa7d85-6080-4aee-869a-d433ffb27b52", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, false, false, 45, [], 98, ~U[2026-03-24 21:58:52Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I show you how to use Linux in an \"ungovernable\" way by fetching packages and distro iso's over the I2P darknet. \n\n0:00 Intro to I2P\n1:49 Downloading Linux .iso's over I2P\n3:32 Configuring Qbittorrent to connect to I2P\n7:57 How Artix Linux is resisting age check laws\n10:31 How to configure package downloads over I2P\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Making Linux Ungovernable With I2P", "oc6WOCx1vCE", 1125, false, "https://www.youtube.com/watch?v=oc6WOCx1vCE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e032400_Making Linux Ungovernable With I2P.mp4", false, 45, ~U[2026-03-24 21:58:52Z]] 09:24:16.504 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.505 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-14 23:10:31Z], 45] 09:24:16.506 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "e11e872e-00b5-4db6-b3d1-06f1949fafef", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, false, false, 45, [], 98, ~U[2026-03-14 23:10:31Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss why Meta (formerly known as Facebook) spent millions of dollars to lobby for the new age check laws like the App Store Accountability Act to shift the responsibility of keeping kids off their platform to OS and App store makers. \n\nSources for this video with more details about the lobbyist paper trail\nhttps://tboteproject.com/git/hekate/attestation-findings\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Meta Spent Millions To Push The New Age Check Laws", "4KyiLyOxux8", 532, false, "https://www.youtube.com/watch?v=4KyiLyOxux8", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031400_Meta Spent Millions To Push The New Age Check Laws.mp4", false, 45, ~U[2026-03-14 23:10:31Z]] 09:24:16.507 [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" = ?) [45] 09:24:16.508 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 16:23:29Z], 45] 09:24:16.509 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "9794cd5d-6783-47b1-87ef-02c1166dd149", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, false, false, 45, [], 98, ~U[2026-03-12 16:23:29Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how the \"App Store Accountability Act\" would add another layer of privacy violating age checks at the federal level to everyone who wants to use any kind of computer or mobile device.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Online ID Check Situation is Crazy", "hiMqdYh9LNU", 526, false, "https://www.youtube.com/watch?v=hiMqdYh9LNU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031200_The Online ID Check Situation is Crazy.mp4", false, 45, ~U[2026-03-12 16:23:29Z]] 09:24:16.509 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.510 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-10 22:51:53Z], 45] 09:24:16.511 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "2316df12-1a9a-45dd-a1ec-668bc2188fd7", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, false, false, 45, [], 98, ~U[2026-03-10 22:51:53Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I demo ULLI the USB-Less Linux Installer which lets you install a new Linux distro from Windows or a different Linux distro without using any external media just like the \"in-place upgrade\" that has existed for Windows OS's since Windows 8.\n\nTry ULLI for yourself\nhttps://github.com/rltvty2/ulli\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Installing Linux Just Got Easier", "K3QOAVrhGTg", 1142, false, "https://www.youtube.com/watch?v=K3QOAVrhGTg", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e031000_Installing Linux Just Got Easier.mp4", false, 45, ~U[2026-03-10 22:51:53Z]] 09:24:16.511 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.513 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 20:52:32Z], 45] 09:24:16.513 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "e415dc51-01af-476a-845a-99e4a0fa8ad6", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, false, false, 45, [], 98, ~U[2026-03-05 20:52:32Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how states are passing laws that would require users to submit their age in order to use an operating system, and how this will affect the free software community.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Online Age Checks Are Going Too Far", "QKzRf8B-oDk", 579, false, "https://www.youtube.com/watch?v=QKzRf8B-oDk", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e030500_Online Age Checks Are Going Too Far.mp4", false, 45, ~U[2026-03-05 20:52:32Z]] 09:24:16.514 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.515 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 00:07:42Z], 45] 09:24:16.516 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "cf0d91c9-1562-4a9b-a688-8d89547c5b1a", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, false, false, 45, [], 98, ~U[2026-02-27 00:07:42Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how Anthropic has been given an ultimatum by the Pentagon to loosen their AI ethics and give the DOD unrestricted access to their models to use them for autonomous weapons and domestic. surveillance.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022700_The Pentagon Is Forcing Anthropic To Make AI Weapon Systems.mp4", false, 45, ~U[2026-02-27 00:07:42Z]] 09:24:16.516 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.517 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-24 22:18:31Z], 45] 09:24:16.518 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "6e1a822e-6244-494f-91ec-6742e3e98d71", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, false, false, 45, [], 98, ~U[2026-02-24 22:18:31Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss Meta's (formerly Facebook) patent to \"simulate\" deceased users with large language models to keep profiles posting content and interacting with real users and how they'll use it to manipulate people for profit.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Facebook Will Simulate Dead Users With AI", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022400_Facebook Will Simulate Dead Users With AI.mp4", false, 45, ~U[2026-02-24 22:18:31Z]] 09:24:16.519 [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" = ?) [45] 09:24:16.520 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:51:33Z], 45] 09:24:16.523 [debug] QUERY OK source="media_items" db=2.4ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "043326e3-e02e-43bf-a84f-350858179e33", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, false, false, 45, [], 98, ~U[2026-02-20 00:51:33Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how Discord will start collecting government ID's and bio metric face scans of all their users and the connections that these ID verification companies have to government agencies that conduct mass surveillance on their citizens.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Discord Will Be Used To Spy On You", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e022000_Discord Will Be Used To Spy On You.mp4", false, 45, ~U[2026-02-20 00:51:33Z]] 09:24:16.523 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.524 [debug] QUERY OK source="media_items" db=1.1ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-14 22:33:31Z], 45] 09:24:16.525 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "5396c6ad-6aa1-494a-bd7f-a79289918a93", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, false, false, 45, [], 98, ~U[2026-02-14 22:33:31Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how Chinese hackers were able to spy on peoples computers by compromising the update infrastructure of notepad plus plus. The hackers were able to conduct multiple waves of espionage until the issue was patched in December. If you or your organization has been using this program during the exploit window you should scan your systems for IOC's.\nhttps://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Chinese Hackers Hijack Notepad++ Updates", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e021400_Chinese Hackers Hijack Notepad++ Updates.mp4", false, 45, ~U[2026-02-14 22:33:31Z]] 09:24:16.526 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.527 [debug] QUERY OK source="media_items" db=1.1ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-06 00:08:18Z], 45] 09:24:16.528 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "fad4c3bc-a297-4770-8d31-a9ba79210fe2", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, false, false, 45, [], 98, ~U[2026-02-06 00:08:18Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how Microsoft giving BitLocker Encryption keys to the FBI reveals a flaw in their cloud storage systems that could expose consumer data to hackers.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Stop Using BitLocker", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e020600_Stop Using BitLocker.mp4", false, 45, ~U[2026-02-06 00:08:18Z]] 09:24:16.528 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 09:24:16.530 [debug] QUERY OK source="media_items" db=1.0ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-24 01:06:39Z], 45] 09:24:16.531 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "e8b619c2-7aa9-4486-a5af-2e5c96da43bc", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, false, false, 45, [], 98, ~U[2026-01-24 01:06:39Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I show you how to run PhotoShop on Linux using new patches made by a developer linked below\n\nWine patches for Adobe Programs\nhttps://github.com/PhialsBasement/wine-adobe-installers/releases/tag/adobe-collections\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Photoshop Finally Works on Linux", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e012400_Photoshop Finally Works on Linux.mp4", false, 45, ~U[2026-01-24 01:06:39Z]] 09:24:16.531 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.532 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-17 19:39:49Z], 45] 09:24:16.533 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "f38bc213-6e98-439e-9162-9a5ac3b6e666", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, false, false, 45, [], 98, ~U[2026-01-17 19:39:49Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how you can use TuxMate to make deploying a Linux desktop easier with bulk app installation, especially if you're distro hopping.\n\nhttps://tuxmate.com/\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "TuxMate Makes Linux Desktop Setup a Breeze", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e011700_TuxMate Makes Linux Desktop Setup a Breeze.mp4", false, 45, ~U[2026-01-17 19:39:49Z]] 09:24:16.533 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.534 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-05 22:37:30Z], 45] 09:24:16.535 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "ae8805d4-6329-41b8-a13b-392324c5cd9f", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, false, false, 45, [], 98, ~U[2026-01-05 22:37:30Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss how the CachyOS team is planning to develop a specialized version of the distro that's optimized for servers, this is a bold move considering cachy OS is a relatively new rolling release distro. Will it be able to compete with Ubuntu and Debian?\n\nLink to the FOSDEM19 talk about Netflix using FreeBSD in their CDN\nhttps://www.youtube.com/watch?v=vcyQBup-Gto\n\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "CachyOS Is Coming For Your Server", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2026/s2026e010500_CachyOS Is Coming For Your Server.mp4", false, 45, ~U[2026-01-05 22:37:30Z]] 09:24:16.536 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 09:24:16.537 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 00:38:26Z], 45] 09:24:16.538 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "0d6b0794-dd6f-4368-be1c-b122d9b7b955", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, false, 45, [], 98, ~U[2025-12-25 00:38:26Z], ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], "In this video I discuss the the Epstein files recently uploaded to justice.gov and how the court records were incorrectly redacted leading people on a hunt for information while documents where more interesting data might be found had more care taken to redact the documents properly.\n\nSomeone also created a python script to batch un-redact pdf files https://github.com/leedrake5/unredact\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "When You Forget To Redact The Epstein Files", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, 45, ~U[2025-12-25 00:38:26Z]] 09:24:16.538 [debug] QUERY OK source="sources" db=0.1ms idle=3.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z], 45] 09:24:16.539 [debug] QUERY OK source="media_items" db=1.2ms 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 ((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")))) [45] 09:24:16.541 [debug] QUERY OK source="media_items" db=1.2ms idle=3.9ms 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")))) [45] 09:24:16.546 [debug] QUERY OK source="media_items" db=5.2ms idle=4.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 09:24:16.548 [debug] QUERY OK source="tasks" db=0.2ms idle=7.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300668, 45, ~U[2026-04-30 14:24:16Z], ~U[2026-04-30 14:24:16Z]] 09:24:16.548 [info] {"args":{"id":45},"id":300582,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":51296722,"event":"job:stop","queue_time":60496,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:24:36.377 [info] {"source":"oban","duration":3145,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:00.864 [info] {"source":"oban","duration":141,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:25:06.381 [info] {"source":"oban","duration":3295,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:36.385 [info] {"source":"oban","duration":3223,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:00.865 [info] {"source":"oban","duration":154,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:26:06.388 [info] {"source":"oban","duration":2462,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:36.392 [info] {"source":"oban","duration":3352,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:00.866 [info] {"source":"oban","duration":275,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:27:06.396 [info] {"source":"oban","duration":3238,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:36.401 [info] {"source":"oban","duration":4240,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:00.867 [info] {"source":"oban","duration":278,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:28:06.405 [info] {"source":"oban","duration":2979,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:12.652 [info] {"args":{"id":52},"id":300666,"meta":{},"system_time":1777559292652726411,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:28:12.653 [debug] QUERY OK source="sources" db=0.4ms idle=671.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" = ?) [52] 09:28:12.653 [debug] QUERY OK source="settings" db=0.3ms idle=672.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 [] 09:28:12.654 [debug] QUERY OK source="media_profiles" db=0.3ms idle=672.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] 09:28:12.654 [debug] QUERY OK source="settings" db=0.3ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:12.654 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:28:12.813 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:28:12.814 [debug] QUERY OK source="media_items" db=0.3ms idle=161.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:28:12.814 [debug] QUERY OK source="settings" db=0.1ms idle=161.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 [] 09:28:12.814 [debug] QUERY OK source="settings" db=0.0ms idle=161.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:12.815 [debug] Running yt-dlp command for action: get_media_attributes 09:28:12.815 [debug] QUERY OK source="settings" db=0.0ms idle=161.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 [] 09:28:12.816 [debug] QUERY OK source="settings" db=0.0ms idle=161.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:12.816 [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 [] 09:28:12.816 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/c2/a0/c2a0cb62f3245efe94130517a1f1aaf5eb1332a0e36e996ce81904c300c530c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:14.485 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/c2/a0/c2a0cb62f3245efe94130517a1f1aaf5eb1332a0e36e996ce81904c300c530c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:28:14.485 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:28:14.485 [debug] QUERY OK source="media_items" db=0.6ms idle=837.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 ((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")))) [52] 09:28:14.488 [debug] QUERY OK source="tasks" db=0.1ms idle=507.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300669, 1301334, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.490 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300670, 1301335, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.493 [debug] QUERY OK source="tasks" db=0.2ms idle=2.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300671, 1301347, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.495 [info] {"args":{"id":1301334},"id":300669,"meta":{},"system_time":1777559294495222842,"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"]} 09:28:14.495 [info] {"args":{"id":1301335},"id":300670,"meta":{},"system_time":1777559294495256878,"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"]} 09:28:14.496 [debug] QUERY OK source="media_items" db=0.6ms 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 WHERE (m0."id" = ?) [1301334] 09:28:14.496 [debug] QUERY OK source="media_items" db=0.6ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 09:28:14.496 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:14.496 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:14.496 [debug] QUERY OK source="sources" db=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 09:28:14.497 [debug] QUERY OK source="sources" db=0.6ms idle=0.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" = ?) [52] 09:28:14.497 [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] 09:28:14.497 [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] 09:28:14.497 [debug] QUERY OK source="tasks" db=0.4ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300672, 1301392, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.497 [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 [1301334] 09:28:14.497 [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 [1301335] 09:28:14.499 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300673, 1301393, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.499 [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" = ?) [1301334] 09:28:14.500 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301335] 09:28:14.500 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 09:28:14.500 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:28:14.501 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.501 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.501 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.501 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.501 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:14.502 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:14.502 [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 [] 09:28:14.502 [debug] QUERY OK source="tasks" db=0.2ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300674, 1301394, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.502 [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 [] 09:28:14.503 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:28:14.503 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.503 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/50/f050b05e2df322b563b98e1cb48fc07ef9acbac89e99a5ab227bba435c3ad5f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:14.503 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.503 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:28:14.504 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d3/7b/d37b372b972151f6f111a65b161f037e3a5fe3c76c113d862cbcd7b60c46cbf5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:14.505 [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" [300675, 1301395, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.508 [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" [300676, 1301397, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.510 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300677, 1301398, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.512 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300678, 1301399, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.514 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300679, 1301400, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.516 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300680, 2720968, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.517 [debug] QUERY OK source="tasks" db=0.1ms idle=1.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300681, 52, ~U[2026-04-30 14:28:14Z], ~U[2026-04-30 14:28:14Z]] 09:28:14.517 [info] {"args":{"id":52},"id":300666,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":1864779,"event":"job:stop","queue_time":948421,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:28:16.069 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d3/7b/d37b372b972151f6f111a65b161f037e3a5fe3c76c113d862cbcd7b60c46cbf5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:16.069 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:16.069 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:16.070 [info] {"args":{"id":1301334},"id":300669,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1574415,"event":"job:stop","queue_time":493887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:16.076 [info] {"args":{"id":1301347},"id":300671,"meta":{},"system_time":1777559296076511543,"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"]} 09:28:16.076 [debug] QUERY OK source="media_items" db=0.2ms idle=95.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" = ?) [1301347] 09:28:16.077 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:16.077 [debug] QUERY OK source="sources" db=0.1ms idle=96.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" = ?) [52] 09:28:16.077 [debug] QUERY OK source="media_profiles" db=0.2ms idle=96.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] 09:28:16.078 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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 [1301347] 09:28:16.080 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 09:28:16.080 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:28:16.080 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:16.080 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:16.080 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:16.080 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:16.081 [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 [] 09:28:16.081 [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 [] 09:28:16.081 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/df/df/dfdfcd9a5ebc4f9699bdb0fe5ff8f6cfa4b076e96337e206e94d877af0dbe614.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:16.159 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/50/f050b05e2df322b563b98e1cb48fc07ef9acbac89e99a5ab227bba435c3ad5f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:16.159 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:16.159 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:16.159 [info] {"args":{"id":1301335},"id":300670,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1664306,"event":"job:stop","queue_time":493887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:16.166 [info] {"args":{"id":1301392},"id":300672,"meta":{},"system_time":1777559296166550614,"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"]} 09:28:16.166 [debug] QUERY OK source="media_items" db=0.1ms idle=85.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" = ?) [1301392] 09:28:16.167 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:16.167 [debug] QUERY OK source="sources" db=0.1ms idle=85.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" = ?) [52] 09:28:16.167 [debug] QUERY OK source="media_profiles" db=0.1ms idle=86.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] 09:28:16.167 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301392] 09:28:16.173 [debug] QUERY OK source="media_metadata" db=0.0ms idle=6.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" = ?) [1301392] 09:28:16.173 [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] 09:28:16.173 [debug] QUERY OK source="settings" db=0.0ms idle=6.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 [] 09:28:16.173 [debug] QUERY OK source="settings" db=0.0ms idle=6.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 [] 09:28:16.174 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:16.174 [debug] QUERY OK source="settings" db=0.0ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:16.175 [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 [] 09:28:16.175 [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 [] 09:28:16.175 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/13/78/1378dede0451f471611c6b2fbe21d9044068960f224965d25fb71ec738637c6c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:17.757 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/df/df/dfdfcd9a5ebc4f9699bdb0fe5ff8f6cfa4b076e96337e206e94d877af0dbe614.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:17.757 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:17.757 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:17.758 [info] {"args":{"id":1301347},"id":300671,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1681404,"event":"job:stop","queue_time":2075954,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:17.764 [info] {"args":{"id":1301393},"id":300673,"meta":{},"system_time":1777559297764503551,"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"]} 09:28:17.764 [debug] QUERY OK source="media_items" db=0.1ms idle=1589.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" = ?) [1301393] 09:28:17.764 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:17.765 [debug] QUERY OK source="sources" db=0.2ms idle=1112.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" = ?) [52] 09:28:17.765 [debug] QUERY OK source="media_profiles" db=0.1ms idle=111.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] 09:28:17.766 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301393] 09:28:17.767 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301393] 09:28:17.767 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:28:17.767 [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 [] 09:28:17.767 [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 [] 09:28:17.767 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:17.768 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:17.768 [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 [] 09:28:17.769 [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 [] 09:28:17.769 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/90/f1/90f18557f5b61ffb7b0af1a3126a0998f1072a2842f155c335a898b0cacab89e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:18.201 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/13/78/1378dede0451f471611c6b2fbe21d9044068960f224965d25fb71ec738637c6c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:18.201 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:18.201 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:18.201 [info] {"args":{"id":1301392},"id":300672,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2035013,"event":"job:stop","queue_time":2165959,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:18.208 [info] {"args":{"id":1301394},"id":300674,"meta":{},"system_time":1777559298208541643,"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"]} 09:28:18.208 [debug] QUERY OK source="media_items" db=0.1ms idle=439.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" = ?) [1301394] 09:28:18.209 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:18.209 [debug] QUERY OK source="sources" db=0.1ms idle=440.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" = ?) [52] 09:28:18.209 [debug] QUERY OK source="media_profiles" db=0.1ms idle=440.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] 09:28:18.209 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301394] 09:28:18.212 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301394] 09:28:18.212 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:28:18.212 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:18.212 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:18.213 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:18.213 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:18.213 [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 [] 09:28:18.214 [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 [] 09:28:18.214 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/96/ef96af522cbf6b04b95244e327f096a977e96095aa05c5aab1f269161337913b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:19.410 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/90/f1/90f18557f5b61ffb7b0af1a3126a0998f1072a2842f155c335a898b0cacab89e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:19.410 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:19.410 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:19.410 [info] {"args":{"id":1301393},"id":300673,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1645771,"event":"job:stop","queue_time":3763939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:19.416 [info] {"args":{"id":1301395},"id":300675,"meta":{},"system_time":1777559299416547488,"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"]} 09:28:19.416 [debug] QUERY OK source="media_items" db=0.1ms idle=1202.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" = ?) [1301395] 09:28:19.417 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:19.417 [debug] QUERY OK source="sources" db=0.1ms idle=1202.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" = ?) [52] 09:28:19.417 [debug] QUERY OK source="media_profiles" db=0.1ms idle=761.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] 09:28:19.418 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301395] 09:28:19.418 [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" = ?) [1301395] 09:28:19.418 [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] 09:28:19.418 [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 [] 09:28:19.418 [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 [] 09:28:19.419 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:19.420 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:19.420 [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 [] 09:28:19.421 [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 [] 09:28:19.421 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/2f/e72f34cccb9f5a6191fb1359d80f70c23b7890348e9f34da9ffb48945af5e0d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:19.838 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/96/ef96af522cbf6b04b95244e327f096a977e96095aa05c5aab1f269161337913b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:19.838 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:19.838 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:19.838 [info] {"args":{"id":1301394},"id":300674,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1629842,"event":"job:stop","queue_time":4207949,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:19.845 [info] {"args":{"id":1301397},"id":300676,"meta":{},"system_time":1777559299845615427,"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"]} 09:28:19.846 [debug] QUERY OK source="media_items" db=0.2ms idle=424.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" = ?) [1301397] 09:28:19.846 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:19.846 [debug] QUERY OK source="sources" db=0.2ms idle=425.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" = ?) [52] 09:28:19.846 [debug] QUERY OK source="media_profiles" db=0.1ms idle=188.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] 09:28:19.847 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 09:28:19.848 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 09:28:19.848 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:28:19.849 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:19.849 [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 [] 09:28:19.849 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:19.850 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:19.850 [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 [] 09:28:19.850 [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 [] 09:28:19.850 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/29/01/290105908ab62201fbedc68799a01fc518ed982110fb995c958020ab006cb82a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:21.075 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/2f/e72f34cccb9f5a6191fb1359d80f70c23b7890348e9f34da9ffb48945af5e0d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:21.075 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:21.075 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:21.076 [info] {"args":{"id":1301395},"id":300675,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1659074,"event":"job:stop","queue_time":5415901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:21.082 [info] {"args":{"id":1301398},"id":300677,"meta":{},"system_time":1777559301082830877,"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"]} 09:28:21.083 [debug] QUERY OK source="media_items" db=0.1ms idle=101.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" = ?) [1301398] 09:28:21.083 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:21.083 [debug] QUERY OK source="sources" db=0.2ms idle=102.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" = ?) [52] 09:28:21.084 [debug] QUERY OK source="media_profiles" db=0.1ms idle=102.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] 09:28:21.084 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301398] 09:28:21.086 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301398] 09:28:21.086 [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] 09:28:21.086 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:21.086 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:21.086 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:21.087 [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 [] 09:28:21.088 [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 [] 09:28:21.088 [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 [] 09:28:21.088 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/68/6968e71353b5778d13b12353128a84418c36f86cd65a6fd46b2596b770644472.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:21.613 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/29/01/290105908ab62201fbedc68799a01fc518ed982110fb995c958020ab006cb82a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:21.613 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:21.613 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:21.613 [info] {"args":{"id":1301397},"id":300676,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1767872,"event":"job:stop","queue_time":5844972,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:21.620 [info] {"args":{"id":1301399},"id":300678,"meta":{},"system_time":1777559301620477418,"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"]} 09:28:21.620 [debug] QUERY OK source="media_items" db=0.2ms idle=532.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" = ?) [1301399] 09:28:21.621 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:21.621 [debug] QUERY OK source="sources" db=0.1ms idle=533.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" = ?) [52] 09:28:21.621 [debug] QUERY OK source="media_profiles" db=0.1ms idle=533.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] 09:28:21.621 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301399] 09:28:21.623 [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" = ?) [1301399] 09:28:21.623 [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] 09:28:21.623 [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 [] 09:28:21.623 [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 [] 09:28:21.623 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:21.624 [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 [] 09:28:21.624 [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 [] 09:28:21.624 [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 [] 09:28:21.624 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/aa/52/aa52a0bafb311262a637eb95c15a10152cc56cb3f4a4efbf0afe0b9ee552b10b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:22.820 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/68/6968e71353b5778d13b12353128a84418c36f86cd65a6fd46b2596b770644472.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:22.820 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:22.821 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:22.821 [info] {"args":{"id":1301398},"id":300677,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1738271,"event":"job:stop","queue_time":7081932,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:22.828 [info] {"args":{"id":1301400},"id":300679,"meta":{},"system_time":1777559302827926781,"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"]} 09:28:22.828 [debug] QUERY OK source="media_items" db=0.3ms idle=1203.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" = ?) [1301400] 09:28:22.828 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:22.828 [debug] QUERY OK source="sources" db=0.1ms idle=1167.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" = ?) [52] 09:28:22.829 [debug] QUERY OK source="media_profiles" db=0.1ms idle=166.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] 09:28:22.829 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301400] 09:28:22.837 [debug] QUERY OK source="media_metadata" db=0.1ms idle=9.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" = ?) [1301400] 09:28:22.837 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:28:22.838 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:28:22.838 [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 [] 09:28:22.838 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:22.839 [debug] QUERY OK source="settings" db=0.0ms idle=9.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:28:22.839 [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 [] 09:28:22.839 [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 [] 09:28:22.839 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/f0/1cf0e47664429ea440d7b565c3ac49d2b9e9a2b0e9051368b7c2670cd4eb68d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:23.248 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/aa/52/aa52a0bafb311262a637eb95c15a10152cc56cb3f4a4efbf0afe0b9ee552b10b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:23.248 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:23.248 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:23.249 [info] {"args":{"id":1301399},"id":300678,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1628481,"event":"job:stop","queue_time":7619895,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:23.255 [info] {"args":{"id":2720968},"id":300680,"meta":{},"system_time":1777559303255485477,"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"]} 09:28:23.255 [debug] QUERY OK source="media_items" db=0.1ms idle=416.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" = ?) [2720968] 09:28:23.256 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:28:23.256 [debug] QUERY OK source="sources" db=0.1ms idle=416.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" = ?) [52] 09:28:23.256 [debug] QUERY OK source="media_profiles" db=0.1ms idle=416.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] 09:28:23.257 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 09:28:23.258 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2720968] 09:28:23.258 [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] 09:28:23.258 [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 [] 09:28:23.258 [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 [] 09:28:23.259 [debug] Running yt-dlp command for action: get_downloadable_status 09:28:23.260 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:28:23.260 [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 [] 09:28:23.260 [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 [] 09:28:23.260 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5f/21/5f21731b7ec50817666c895390f277a15de6746221e5c558ea540d40f4be7941.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:28:24.630 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/f0/1cf0e47664429ea440d7b565c3ac49d2b9e9a2b0e9051368b7c2670cd4eb68d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:24.630 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:24.631 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:24.631 [info] {"args":{"id":1301400},"id":300679,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1803160,"event":"job:stop","queue_time":8826908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:24.876 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5f/21/5f21731b7ec50817666c895390f277a15de6746221e5c558ea540d40f4be7941.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:28:24.877 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:24.877 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:28:24.877 [info] {"args":{"id":2720968},"id":300680,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1621798,"event":"job:stop","queue_time":9254896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:28:36.409 [info] {"source":"oban","duration":3348,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:00.868 [info] {"source":"oban","duration":388,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:29:06.414 [info] {"source":"oban","duration":4127,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:36.418 [info] {"source":"oban","duration":3819,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:00.869 [info] {"source":"oban","duration":122,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:30:06.423 [info] {"source":"oban","duration":3251,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:36.426 [info] {"source":"oban","duration":2320,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:00.870 [info] {"source":"oban","duration":139,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:31:06.431 [info] {"source":"oban","duration":4015,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:36.434 [info] {"source":"oban","duration":2039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:32:00.871 [info] {"source":"oban","duration":153,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:32:06.437 [info] {"source":"oban","duration":2541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:32:36.440 [info] {"source":"oban","duration":2854,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:00.088 [info] {"args":{"id":38},"id":300423,"meta":{},"system_time":1777559580088906676,"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"]} 09:33:00.089 [debug] QUERY OK source="sources" db=0.3ms idle=107.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" = ?) [38] 09:33:00.089 [debug] QUERY OK source="settings" db=0.3ms idle=108.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 [] 09:33:00.091 [debug] QUERY OK source="media_items" db=1.1ms idle=108.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")))) [38] 09:33:00.091 [debug] QUERY OK source="media_items" db=0.3ms idle=8.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 09:33:00.091 [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] 09:33:00.091 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:33:00.092 [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 [] 09:33:00.093 [debug] QUERY OK source="media_items" db=0.8ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [38] 09:33:00.096 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:33:00.096 [debug] Current batch of media processed. Will check again in 1000ms 09:33:00.096 [debug] QUERY OK source="settings" db=0.1ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:33:00.096 [debug] QUERY OK source="settings" db=0.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:33:00.097 [debug] QUERY OK source="settings" db=0.0ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:33:00.097 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCiSIL42pQRpc-8JNiYDFyzQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/14/d3/14d3b982bde71f2b2cb11c6d66ddd13123cc43afd46a0980e0885660d726f96f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a6/62/a662a7a2e9ab04f0d6bbb5965690c67e583c8ea28e9e24d2da199e432e1e77d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:33:00.872 [info] {"source":"oban","duration":158,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:33:01.097 [debug] Current batch of media processed. Will check again in 1000ms 09:33:02.097 [debug] Current batch of media processed. Will check again in 1000ms 09:33:03.099 [debug] Current batch of media processed. Will check again in 1000ms 09:33:04.100 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I submitted for Bevy Jam 7! I like the things that I worked on during the week, and (perhaps obviously) don't like the things I rushed over the weekend.\n\nCode: https://github.com/ChristopherBiscardi/bevy-jam-7/tree/6e8d26bb6f94bb62d43146b088660e7652c818bb", "duration" => 1749, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e021900_My Bevy Jam 7 Entry.mp4", "id" => "gaMPc-5KkOQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gaMPc-5KkOQ", "playlist_index" => 1, "timestamp" => 1771468515, "title" => "My Bevy Jam 7 Entry", "upload_date" => "20260219"} 09:33:04.100 [debug] QUERY OK source="sources" db=0.2ms idle=119.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 (?)) [38] 09:33:04.101 [debug] QUERY OK source="sources" db=0.1ms idle=119.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" = ?) [38] 09:33:04.102 [debug] QUERY OK source="media_items" db=0.8ms idle=120.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 02:35:15Z], 38] 09:33:04.103 [debug] QUERY OK source="media_items" db=0.5ms idle=121.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I submitted for Bevy Jam 7! I like the things that I worked on during the week, and (perhaps obviously) don't like the things I rushed over the weekend.\n\nCode: https://github.com/ChristopherBiscardi/bevy-jam-7/tree/6e8d26bb6f94bb62d43146b088660e7652c818bb", "My Bevy Jam 7 Entry", "a5eea4ba-ad26-4c97-809d-03259b269c01", "gaMPc-5KkOQ", 1749, false, "https://www.youtube.com/watch?v=gaMPc-5KkOQ", 1, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e021900_My Bevy Jam 7 Entry.mp4", false, false, false, 38, [], 98, ~U[2026-02-19 02:35:15Z], ~U[2026-04-30 14:33:04Z], ~U[2026-04-30 14:33:04Z], "I submitted for Bevy Jam 7! I like the things that I worked on during the week, and (perhaps obviously) don't like the things I rushed over the weekend.\n\nCode: https://github.com/ChristopherBiscardi/bevy-jam-7/tree/6e8d26bb6f94bb62d43146b088660e7652c818bb", "My Bevy Jam 7 Entry", "gaMPc-5KkOQ", 1749, false, "https://www.youtube.com/watch?v=gaMPc-5KkOQ", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e021900_My Bevy Jam 7 Entry.mp4", false, 38, ~U[2026-02-19 02:35:15Z]] 09:33:04.103 [debug] QUERY OK source="sources" db=0.1ms idle=16.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" = ?) [38] 09:33:04.103 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:04.103 [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 [2302048] 09:33:04.104 [debug] Current batch of media processed. Will check again in 1000ms 09:33:05.105 [debug] Current batch of media processed. Will check again in 1000ms 09:33:06.106 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Bevy Jam 7 is coming! Here are some of the crates that will find their way into my submission, and alternatives.\n\nbevy jam 7: https://itch.io/jam/bevy-jam-7\nbevy_cli: https://github.com/TheBevyFlock/bevy_cli\nbevy_inspector_egui: https://github.com/jakobhellermann/bevy-inspector-egui\nbevy_seedling: https://github.com/CorvusPrudens/bevy_seedling\nskein: https://bevyskein.dev/\nnoiz: https://crates.io/crates/noiz\nbevy_asset_loader: https://github.com/NiklasEi/bevy_asset_loader\nbevy_hanabi: https://github.com/djeedai/bevy_hanabi\n\n00:00 - Bevy Jam 7\n00:26 - bevy_cli\n06:26 - Inspectors\n09:56 - Input Management\n12:40 - audio\n15:29 - level editors\n17:38 - noiz\n18:45 - bevy_asset_loader\n20:01 - Particles\n20:43 - bevy_dev_tools", "duration" => 1323, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e020500_Useful Crates for Bevy Jam 7.mp4", "id" => "Xl2KXX_8sCs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Xl2KXX_8sCs", "playlist_index" => 2, "timestamp" => 1770294600, "title" => "Useful Crates for Bevy Jam 7", "upload_date" => "20260205"} 09:33:06.107 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=125.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 (?)) [38] 09:33:06.107 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:06.109 [debug] QUERY OK source="media_items" db=0.9ms idle=126.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 12:30:00Z], 38] 09:33:06.110 [debug] QUERY OK source="media_items" db=0.7ms idle=128.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Bevy Jam 7 is coming! Here are some of the crates that will find their way into my submission, and alternatives.\n\nbevy jam 7: https://itch.io/jam/bevy-jam-7\nbevy_cli: https://github.com/TheBevyFlock/bevy_cli\nbevy_inspector_egui: https://github.com/jakobhellermann/bevy-inspector-egui\nbevy_seedling: https://github.com/CorvusPrudens/bevy_seedling\nskein: https://bevyskein.dev/\nnoiz: https://crates.io/crates/noiz\nbevy_asset_loader: https://github.com/NiklasEi/bevy_asset_loader\nbevy_hanabi: https://github.com/djeedai/bevy_hanabi\n\n00:00 - Bevy Jam 7\n00:26 - bevy_cli\n06:26 - Inspectors\n09:56 - Input Management\n12:40 - audio\n15:29 - level editors\n17:38 - noiz\n18:45 - bevy_asset_loader\n20:01 - Particles\n20:43 - bevy_dev_tools", "Useful Crates for Bevy Jam 7", "a898d837-ee0b-4fa4-86f6-c59cd0732526", "Xl2KXX_8sCs", 1323, false, "https://www.youtube.com/watch?v=Xl2KXX_8sCs", 2, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e020500_Useful Crates for Bevy Jam 7.mp4", false, false, false, 38, [], 98, ~U[2026-02-05 12:30:00Z], ~U[2026-04-30 14:33:06Z], ~U[2026-04-30 14:33:06Z], "Bevy Jam 7 is coming! Here are some of the crates that will find their way into my submission, and alternatives.\n\nbevy jam 7: https://itch.io/jam/bevy-jam-7\nbevy_cli: https://github.com/TheBevyFlock/bevy_cli\nbevy_inspector_egui: https://github.com/jakobhellermann/bevy-inspector-egui\nbevy_seedling: https://github.com/CorvusPrudens/bevy_seedling\nskein: https://bevyskein.dev/\nnoiz: https://crates.io/crates/noiz\nbevy_asset_loader: https://github.com/NiklasEi/bevy_asset_loader\nbevy_hanabi: https://github.com/djeedai/bevy_hanabi\n\n00:00 - Bevy Jam 7\n00:26 - bevy_cli\n06:26 - Inspectors\n09:56 - Input Management\n12:40 - audio\n15:29 - level editors\n17:38 - noiz\n18:45 - bevy_asset_loader\n20:01 - Particles\n20:43 - bevy_dev_tools", "Useful Crates for Bevy Jam 7", "Xl2KXX_8sCs", 1323, false, "https://www.youtube.com/watch?v=Xl2KXX_8sCs", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e020500_Useful Crates for Bevy Jam 7.mp4", false, 38, ~U[2026-02-05 12:30:00Z]] 09:33:06.110 [debug] QUERY OK source="sources" db=0.1ms idle=20.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" = ?) [38] 09:33:06.110 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:33:06.111 [debug] QUERY OK source="media_items" db=0.1ms 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 [2195118] 09:33:06.111 [debug] Current batch of media processed. Will check again in 1000ms 09:33:06.445 [info] {"source":"oban","duration":3871,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:07.111 [debug] Current batch of media processed. Will check again in 1000ms 09:33:08.113 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A flappy bird implementation in Bevy! *Flappy Bird* is meant to give you a taste of Rust through using the Bevy game engine. It is designed for a first-time Bevy user.\n\nJoin the Rust Adventure Discord if you have questions: https://discord.gg/Zd6vJvDwYu\n\nRust Adventure: https://www.rustadventure.dev/\nFlappy Bird Workshop: https://www.rustadventure.dev/flappy-bird\nBevy Jam 7: https://itch.io/jam/bevy-jam-7\n\n00:00 - Flappy Bird!\n05:02 - Camera2d Projections\n11:16 - Required Components: Gravity and Velocity\n17:19 - Triggering Observers for Out of Bounds\n21:27 - Spawning Pipes\n26:40 - Moving Pipes\n32:15 - Collision and Gizmos\n36:34 - Keeping Score\n38:45 - Background Materials\n42:35 - Cleanup and Polish", "duration" => 2722, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e012100_Full Bevy 0.18 Flappy Bird Workshop.mp4", "id" => "jKSZ8k70dxM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jKSZ8k70dxM", "playlist_index" => 3, "timestamp" => 1768998600, "title" => "Full Bevy 0.18 Flappy Bird Workshop", "upload_date" => "20260121"} 09:33:08.113 [debug] QUERY OK source="sources" db=0.1ms idle=132.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 (?)) [38] 09:33:08.114 [debug] QUERY OK source="sources" db=0.1ms idle=132.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" = ?) [38] 09:33:08.115 [debug] QUERY OK source="media_items" db=1.0ms idle=133.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-21 12:30:00Z], 38] 09:33:08.116 [debug] QUERY OK source="media_items" db=0.8ms idle=134.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A flappy bird implementation in Bevy! *Flappy Bird* is meant to give you a taste of Rust through using the Bevy game engine. It is designed for a first-time Bevy user.\n\nJoin the Rust Adventure Discord if you have questions: https://discord.gg/Zd6vJvDwYu\n\nRust Adventure: https://www.rustadventure.dev/\nFlappy Bird Workshop: https://www.rustadventure.dev/flappy-bird\nBevy Jam 7: https://itch.io/jam/bevy-jam-7\n\n00:00 - Flappy Bird!\n05:02 - Camera2d Projections\n11:16 - Required Components: Gravity and Velocity\n17:19 - Triggering Observers for Out of Bounds\n21:27 - Spawning Pipes\n26:40 - Moving Pipes\n32:15 - Collision and Gizmos\n36:34 - Keeping Score\n38:45 - Background Materials\n42:35 - Cleanup and Polish", "Full Bevy 0.18 Flappy Bird Workshop", "8f69ba71-1720-474b-b60a-ad520bfa59d8", "jKSZ8k70dxM", 2722, false, "https://www.youtube.com/watch?v=jKSZ8k70dxM", 3, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e012100_Full Bevy 0.18 Flappy Bird Workshop.mp4", false, false, false, 38, [], 98, ~U[2026-01-21 12:30:00Z], ~U[2026-04-30 14:33:08Z], ~U[2026-04-30 14:33:08Z], "A flappy bird implementation in Bevy! *Flappy Bird* is meant to give you a taste of Rust through using the Bevy game engine. It is designed for a first-time Bevy user.\n\nJoin the Rust Adventure Discord if you have questions: https://discord.gg/Zd6vJvDwYu\n\nRust Adventure: https://www.rustadventure.dev/\nFlappy Bird Workshop: https://www.rustadventure.dev/flappy-bird\nBevy Jam 7: https://itch.io/jam/bevy-jam-7\n\n00:00 - Flappy Bird!\n05:02 - Camera2d Projections\n11:16 - Required Components: Gravity and Velocity\n17:19 - Triggering Observers for Out of Bounds\n21:27 - Spawning Pipes\n26:40 - Moving Pipes\n32:15 - Collision and Gizmos\n36:34 - Keeping Score\n38:45 - Background Materials\n42:35 - Cleanup and Polish", "Full Bevy 0.18 Flappy Bird Workshop", "jKSZ8k70dxM", 2722, false, "https://www.youtube.com/watch?v=jKSZ8k70dxM", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e012100_Full Bevy 0.18 Flappy Bird Workshop.mp4", false, 38, ~U[2026-01-21 12:30:00Z]] 09:33:08.116 [debug] QUERY OK source="sources" db=0.1ms idle=24.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" = ?) [38] 09:33:08.117 [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] 09:33:08.117 [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 [2074959] 09:33:08.117 [debug] Current batch of media processed. Will check again in 1000ms 09:33:09.117 [debug] Current batch of media processed. Will check again in 1000ms 09:33:10.119 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "An introductory compute shader landscape generation project. We use noise and a pre-allocated mesh buffer to construct landscape and talk about how mesh attributes are packed into vertex buffers, how compute shaders get initialized and such, workgroups, and more.\n\nCode from today: https://github.com/rust-adventure/bevy-examples/tree/2384d59b24e74af068c8b350ef2940e7c685643f/examples/landscape-compute-intro\n\nPR mentioned in the video: https://github.com/bevyengine/bevy/pull/22296\n\nAsk questions in the Rust Adventure Discord: https://discord.gg/zxsWUhu6cu", "duration" => 3486, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011400_Introductory Compute Shader Landscapes in Bevy.mp4", "id" => "yBF23EWxsc8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yBF23EWxsc8", "playlist_index" => 4, "timestamp" => 1768412658, "title" => "Introductory Compute Shader Landscapes in Bevy", "upload_date" => "20260114"} 09:33:10.119 [debug] QUERY OK source="sources" db=0.1ms idle=138.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 (?)) [38] 09:33:10.119 [debug] QUERY OK source="sources" db=0.1ms idle=138.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" = ?) [38] 09:33:10.120 [debug] QUERY OK source="media_items" db=0.9ms idle=138.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-14 17:44:18Z], 38] 09:33:10.121 [debug] QUERY OK source="media_items" db=0.8ms idle=139.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["An introductory compute shader landscape generation project. We use noise and a pre-allocated mesh buffer to construct landscape and talk about how mesh attributes are packed into vertex buffers, how compute shaders get initialized and such, workgroups, and more.\n\nCode from today: https://github.com/rust-adventure/bevy-examples/tree/2384d59b24e74af068c8b350ef2940e7c685643f/examples/landscape-compute-intro\n\nPR mentioned in the video: https://github.com/bevyengine/bevy/pull/22296\n\nAsk questions in the Rust Adventure Discord: https://discord.gg/zxsWUhu6cu", "Introductory Compute Shader Landscapes in Bevy", "1cf88cde-7264-4365-8dc0-db26a8accd57", "yBF23EWxsc8", 3486, false, "https://www.youtube.com/watch?v=yBF23EWxsc8", 4, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011400_Introductory Compute Shader Landscapes in Bevy.mp4", false, false, false, 38, [], 97, ~U[2026-01-14 17:44:18Z], ~U[2026-04-30 14:33:10Z], ~U[2026-04-30 14:33:10Z], "An introductory compute shader landscape generation project. We use noise and a pre-allocated mesh buffer to construct landscape and talk about how mesh attributes are packed into vertex buffers, how compute shaders get initialized and such, workgroups, and more.\n\nCode from today: https://github.com/rust-adventure/bevy-examples/tree/2384d59b24e74af068c8b350ef2940e7c685643f/examples/landscape-compute-intro\n\nPR mentioned in the video: https://github.com/bevyengine/bevy/pull/22296\n\nAsk questions in the Rust Adventure Discord: https://discord.gg/zxsWUhu6cu", "Introductory Compute Shader Landscapes in Bevy", "yBF23EWxsc8", 3486, false, "https://www.youtube.com/watch?v=yBF23EWxsc8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011400_Introductory Compute Shader Landscapes in Bevy.mp4", false, 38, ~U[2026-01-14 17:44:18Z]] 09:33:10.122 [debug] QUERY OK source="sources" db=0.1ms idle=27.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" = ?) [38] 09:33:10.122 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:33:10.123 [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 [2020529] 09:33:10.123 [debug] Current batch of media processed. Will check again in 1000ms 09:33:11.124 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Bevy Release: https://bevy.org/news/bevy-0-18/\nMigration Guides: https://bevy.org/learn/migration-guides/introduction/\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nRust Adventure: https://www.rustadventure.dev/", "duration" => 330, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011300_The Bevy Game Engine 0.18 Release.mp4", "id" => "ZPsN_iQ4Ezc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZPsN_iQ4Ezc", "playlist_index" => 5, "timestamp" => 1768340755, "title" => "The Bevy Game Engine 0.18 Release", "upload_date" => "20260113"} 09:33:11.124 [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" IN (?)) [38] 09:33:11.125 [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" = ?) [38] 09:33:11.126 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-13 21:45:55Z], 38] 09:33:11.127 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Bevy Release: https://bevy.org/news/bevy-0-18/\nMigration Guides: https://bevy.org/learn/migration-guides/introduction/\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nRust Adventure: https://www.rustadventure.dev/", "The Bevy Game Engine 0.18 Release", "4f8d6807-eeda-46cd-8e5a-ebb1513cfac3", "ZPsN_iQ4Ezc", 330, false, "https://www.youtube.com/watch?v=ZPsN_iQ4Ezc", 5, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011300_The Bevy Game Engine 0.18 Release.mp4", false, false, false, 38, [], 98, ~U[2026-01-13 21:45:55Z], ~U[2026-04-30 14:33:11Z], ~U[2026-04-30 14:33:11Z], "Bevy Release: https://bevy.org/news/bevy-0-18/\nMigration Guides: https://bevy.org/learn/migration-guides/introduction/\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nRust Adventure: https://www.rustadventure.dev/", "The Bevy Game Engine 0.18 Release", "ZPsN_iQ4Ezc", 330, false, "https://www.youtube.com/watch?v=ZPsN_iQ4Ezc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011300_The Bevy Game Engine 0.18 Release.mp4", false, 38, ~U[2026-01-13 21:45:55Z]] 09:33:11.127 [debug] QUERY OK source="sources" db=0.1ms idle=31.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" = ?) [38] 09:33:11.127 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:33:11.128 [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 [2014095] 09:33:11.128 [debug] Current batch of media processed. Will check again in 1000ms 09:33:12.128 [debug] Current batch of media processed. Will check again in 1000ms 09:33:13.130 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A new type of video for the channel: devlogs. Covering Mesh Shaders, some thoughts about the channel, and Rust Adventure", "duration" => 1987, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011200_devlog: new year, mesh shaders, rust adventure.mp4", "id" => "5sjyo2TKL0Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5sjyo2TKL0Y", "playlist_index" => 6, "timestamp" => 1768221010, "title" => "devlog: new year, mesh shaders, rust adventure", "upload_date" => "20260112"} 09:33:13.130 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [38] 09:33:13.130 [debug] QUERY OK source="sources" db=0.0ms idle=149.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" = ?) [38] 09:33:13.131 [debug] QUERY OK source="media_items" db=0.9ms idle=149.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-12 12:30:10Z], 38] 09:33:13.149 [debug] QUERY OK source="media_items" db=17.4ms idle=150.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A new type of video for the channel: devlogs. Covering Mesh Shaders, some thoughts about the channel, and Rust Adventure", "devlog: new year, mesh shaders, rust adventure", "c46081aa-2358-45a2-9056-67d9d32d0a0c", "5sjyo2TKL0Y", 1987, false, "https://www.youtube.com/watch?v=5sjyo2TKL0Y", 6, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011200_devlog: new year, mesh shaders, rust adventure.mp4", false, false, false, 38, [], 98, ~U[2026-01-12 12:30:10Z], ~U[2026-04-30 14:33:13Z], ~U[2026-04-30 14:33:13Z], "A new type of video for the channel: devlogs. Covering Mesh Shaders, some thoughts about the channel, and Rust Adventure", "devlog: new year, mesh shaders, rust adventure", "5sjyo2TKL0Y", 1987, false, "https://www.youtube.com/watch?v=5sjyo2TKL0Y", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011200_devlog: new year, mesh shaders, rust adventure.mp4", false, 38, ~U[2026-01-12 12:30:10Z]] 09:33:13.149 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [38] 09:33:13.150 [debug] QUERY OK source="media_profiles" db=0.1ms idle=19.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] 09:33:13.150 [debug] QUERY OK source="media_items" db=0.2ms idle=19.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 [2003157] 09:33:13.150 [debug] Current batch of media processed. Will check again in 1000ms 09:33:14.151 [debug] Current batch of media processed. Will check again in 1000ms 09:33:15.152 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A Fistful of Boomerangs: https://4d4xfun.itch.io/bevy-jam-6\n\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nSimulo: https://store.steampowered.com/app/3291520/Simulo/\nLong Story 2: https://store.steampowered.com/app/2427820/LongStory_2/\n\nnoiz: https://docs.rs/noiz/latest/noiz/\nAvian Physics: https://github.com/avianphysics/avian\nglizmo: https://crates.io/crates/glizmo\nbevy-clipmap: https://github.com/kirillsurkov/bevy-clipmap\nmotiongfx: https://github.com/voxell-tech/motiongfx", "duration" => 475, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e010100_This Year in Bevy 2025.mp4", "id" => "ea-fji5ULDg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ea-fji5ULDg", "playlist_index" => 7, "timestamp" => 1767238421, "title" => "This Year in Bevy 2025", "upload_date" => "20260101"} 09:33:15.152 [debug] QUERY OK source="sources" db=0.2ms idle=171.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 (?)) [38] 09:33:15.153 [debug] QUERY OK source="sources" db=0.1ms idle=171.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" = ?) [38] 09:33:15.154 [debug] QUERY OK source="media_items" db=0.9ms idle=172.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-01 03:33:41Z], 38] 09:33:15.159 [debug] QUERY OK source="media_items" db=4.5ms idle=173.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A Fistful of Boomerangs: https://4d4xfun.itch.io/bevy-jam-6\n\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nSimulo: https://store.steampowered.com/app/3291520/Simulo/\nLong Story 2: https://store.steampowered.com/app/2427820/LongStory_2/\n\nnoiz: https://docs.rs/noiz/latest/noiz/\nAvian Physics: https://github.com/avianphysics/avian\nglizmo: https://crates.io/crates/glizmo\nbevy-clipmap: https://github.com/kirillsurkov/bevy-clipmap\nmotiongfx: https://github.com/voxell-tech/motiongfx", "This Year in Bevy 2025", "50806c54-8dc4-4d68-b7f7-551e45da2b1c", "ea-fji5ULDg", 475, false, "https://www.youtube.com/watch?v=ea-fji5ULDg", 7, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e010100_This Year in Bevy 2025.mp4", false, false, false, 38, [], 98, ~U[2026-01-01 03:33:41Z], ~U[2026-04-30 14:33:15Z], ~U[2026-04-30 14:33:15Z], "A Fistful of Boomerangs: https://4d4xfun.itch.io/bevy-jam-6\n\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nSimulo: https://store.steampowered.com/app/3291520/Simulo/\nLong Story 2: https://store.steampowered.com/app/2427820/LongStory_2/\n\nnoiz: https://docs.rs/noiz/latest/noiz/\nAvian Physics: https://github.com/avianphysics/avian\nglizmo: https://crates.io/crates/glizmo\nbevy-clipmap: https://github.com/kirillsurkov/bevy-clipmap\nmotiongfx: https://github.com/voxell-tech/motiongfx", "This Year in Bevy 2025", "ea-fji5ULDg", 475, false, "https://www.youtube.com/watch?v=ea-fji5ULDg", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e010100_This Year in Bevy 2025.mp4", false, 38, ~U[2026-01-01 03:33:41Z]] 09:33:15.159 [debug] QUERY OK source="sources" db=0.2ms idle=55.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" = ?) [38] 09:33:15.159 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:15.160 [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 [1911765] 09:33:15.160 [debug] Current batch of media processed. Will check again in 1000ms 09:33:16.161 [debug] Current batch of media processed. Will check again in 1000ms 09:33:17.162 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://thisweekinbevy.com/issue/2025-12-22-shift-o-souprune-and-volumetric-clouds\n\nThis week we have a combination of features that made it into the 0.18 release candidate, as well as the first PRs merged for the 0.19 cycle.\n\nMerges this week include global gizmos, glTF extension handling, a FullscreenMaterial, and more.\n\nShift-O is a Bevy Jam 6 game with updates this week, while SoupRune is an in-progress framework for Undertale/Deltarune fan games.\n\n00:00 - Shift-O, SoupRune, and Volumetric Clouds\n00:25 - Easy Demo Recording\n00:59 - Global Gizmos\n01:25 - glTF Extension Handling\n02:06 - FullscreenMaterial\n02:33 - PreviousState\n02:51 - Font Weight\n03:01 - RenderTarget as Component\n03:09 - Transparent Sorting improvements\n03:40 - Shift-O\n03:57 - SoupRune\n04:02 - Spacefaring.is\n04:12 - Volumetric Clouds\n04:35 - Kinect 360 Particles\n04:42 - Recursive Portals\n04:51 - Geometry Clipmaps\n05:04 - Cuboid Wars\n05:24 - bevy_tiled_background\n05:37 - Actuate v0.21\n05:48 - Maiu Online Devlog #8\n05:59 - How I made AAA Sky Rendering from scratch\n06:13 - Unifying the Fuller Stack with Entity Component System", "duration" => 401, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", "id" => "jqHh06r2-Wc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jqHh06r2-Wc", "playlist_index" => 8, "timestamp" => 1766579473, "title" => "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "upload_date" => "20251224"} 09:33:17.162 [debug] QUERY OK source="sources" db=0.1ms idle=181.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 (?)) [38] 09:33:17.162 [debug] QUERY OK source="sources" db=0.1ms idle=181.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" = ?) [38] 09:33:17.163 [debug] QUERY OK source="media_items" db=0.9ms idle=181.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-24 12:31:13Z], 38] 09:33:17.165 [debug] QUERY OK source="media_items" db=0.9ms idle=183.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://thisweekinbevy.com/issue/2025-12-22-shift-o-souprune-and-volumetric-clouds\n\nThis week we have a combination of features that made it into the 0.18 release candidate, as well as the first PRs merged for the 0.19 cycle.\n\nMerges this week include global gizmos, glTF extension handling, a FullscreenMaterial, and more.\n\nShift-O is a Bevy Jam 6 game with updates this week, while SoupRune is an in-progress framework for Undertale/Deltarune fan games.\n\n00:00 - Shift-O, SoupRune, and Volumetric Clouds\n00:25 - Easy Demo Recording\n00:59 - Global Gizmos\n01:25 - glTF Extension Handling\n02:06 - FullscreenMaterial\n02:33 - PreviousState\n02:51 - Font Weight\n03:01 - RenderTarget as Component\n03:09 - Transparent Sorting improvements\n03:40 - Shift-O\n03:57 - SoupRune\n04:02 - Spacefaring.is\n04:12 - Volumetric Clouds\n04:35 - Kinect 360 Particles\n04:42 - Recursive Portals\n04:51 - Geometry Clipmaps\n05:04 - Cuboid Wars\n05:24 - bevy_tiled_background\n05:37 - Actuate v0.21\n05:48 - Maiu Online Devlog #8\n05:59 - How I made AAA Sky Rendering from scratch\n06:13 - Unifying the Fuller Stack with Entity Component System", "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "6054fc80-d73b-4c98-844e-78b86f948c29", "jqHh06r2-Wc", 401, false, "https://www.youtube.com/watch?v=jqHh06r2-Wc", 8, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, false, false, 38, [], 98, ~U[2025-12-24 12:31:13Z], ~U[2026-04-30 14:33:17Z], ~U[2026-04-30 14:33:17Z], "https://thisweekinbevy.com/issue/2025-12-22-shift-o-souprune-and-volumetric-clouds\n\nThis week we have a combination of features that made it into the 0.18 release candidate, as well as the first PRs merged for the 0.19 cycle.\n\nMerges this week include global gizmos, glTF extension handling, a FullscreenMaterial, and more.\n\nShift-O is a Bevy Jam 6 game with updates this week, while SoupRune is an in-progress framework for Undertale/Deltarune fan games.\n\n00:00 - Shift-O, SoupRune, and Volumetric Clouds\n00:25 - Easy Demo Recording\n00:59 - Global Gizmos\n01:25 - glTF Extension Handling\n02:06 - FullscreenMaterial\n02:33 - PreviousState\n02:51 - Font Weight\n03:01 - RenderTarget as Component\n03:09 - Transparent Sorting improvements\n03:40 - Shift-O\n03:57 - SoupRune\n04:02 - Spacefaring.is\n04:12 - Volumetric Clouds\n04:35 - Kinect 360 Particles\n04:42 - Recursive Portals\n04:51 - Geometry Clipmaps\n05:04 - Cuboid Wars\n05:24 - bevy_tiled_background\n05:37 - Actuate v0.21\n05:48 - Maiu Online Devlog #8\n05:59 - How I made AAA Sky Rendering from scratch\n06:13 - Unifying the Fuller Stack with Entity Component System", "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "jqHh06r2-Wc", 401, false, "https://www.youtube.com/watch?v=jqHh06r2-Wc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, 38, ~U[2025-12-24 12:31:13Z]] 09:33:17.165 [debug] QUERY OK source="sources" db=0.1ms idle=58.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" = ?) [38] 09:33:17.165 [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] 09:33:17.166 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [1850728] 09:33:17.166 [debug] Current batch of media processed. Will check again in 1000ms 09:33:18.167 [debug] Current batch of media processed. Will check again in 1000ms 09:33:19.168 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://thisweekinbevy.com/issue/2025-12-15-bevy-018-release-candidate-metrics-dashboard-and-more\n\nBevy 0.18-rc.1 is out! The release train is on track for this release, occurring about 3 months after the last release and as usual anything that is ready on main has been included. There is no migration guide collected onto a single page yet, so if you'd prefer to wait for that you can expect it fairly soon.\n\n00:00 - Bevy 0.18.0-rc.1\n00:56 - Bevy Metrics Dashboard\n01:18 - Infrastructure for Portals and Mirrors\n01:53 - Decals\n02:25 - Gizmos\n02:38 - ImageSample address_mode and filters\n03:05 - Misc PRs\n04:01 - City Generator\n04:13 - Virtual Machine\n04:26 - 3D light distribution viewer\n04:48 - INSANIO\n05:02 - WIP game worldmap\n05:11 - Kintect\n05:18 - A Dioxus/Bevy Editor\n05:24 - bevy_map_editor progress\n05:31 - Screen Annotations\n05:57 - FoilRs\n06:05 - Multitouch camera control\n06:11 - png level generation\n06:50 - Signs of Danger\n07:11 - Fish Inverse Kinematics\n07:22 Crates", "duration" => 536, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121800_Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy.mp4", "id" => "g8t-LRr3M2A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g8t-LRr3M2A", "playlist_index" => 9, "timestamp" => 1766061000, "title" => "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "upload_date" => "20251218"} 09:33:19.168 [debug] QUERY OK source="sources" db=0.3ms idle=187.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 (?)) [38] 09:33:19.169 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:19.170 [debug] QUERY OK source="media_items" db=0.9ms idle=188.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 12:30:00Z], 38] 09:33:19.176 [debug] QUERY OK source="media_items" db=5.8ms idle=189.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://thisweekinbevy.com/issue/2025-12-15-bevy-018-release-candidate-metrics-dashboard-and-more\n\nBevy 0.18-rc.1 is out! The release train is on track for this release, occurring about 3 months after the last release and as usual anything that is ready on main has been included. There is no migration guide collected onto a single page yet, so if you'd prefer to wait for that you can expect it fairly soon.\n\n00:00 - Bevy 0.18.0-rc.1\n00:56 - Bevy Metrics Dashboard\n01:18 - Infrastructure for Portals and Mirrors\n01:53 - Decals\n02:25 - Gizmos\n02:38 - ImageSample address_mode and filters\n03:05 - Misc PRs\n04:01 - City Generator\n04:13 - Virtual Machine\n04:26 - 3D light distribution viewer\n04:48 - INSANIO\n05:02 - WIP game worldmap\n05:11 - Kintect\n05:18 - A Dioxus/Bevy Editor\n05:24 - bevy_map_editor progress\n05:31 - Screen Annotations\n05:57 - FoilRs\n06:05 - Multitouch camera control\n06:11 - png level generation\n06:50 - Signs of Danger\n07:11 - Fish Inverse Kinematics\n07:22 Crates", "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "ef6d0b6b-f5f5-4ba3-8c83-e7bc186ede5c", "g8t-LRr3M2A", 536, false, "https://www.youtube.com/watch?v=g8t-LRr3M2A", 9, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121800_Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy.mp4", false, false, false, 38, [], 98, ~U[2025-12-18 12:30:00Z], ~U[2026-04-30 14:33:19Z], ~U[2026-04-30 14:33:19Z], "https://thisweekinbevy.com/issue/2025-12-15-bevy-018-release-candidate-metrics-dashboard-and-more\n\nBevy 0.18-rc.1 is out! The release train is on track for this release, occurring about 3 months after the last release and as usual anything that is ready on main has been included. There is no migration guide collected onto a single page yet, so if you'd prefer to wait for that you can expect it fairly soon.\n\n00:00 - Bevy 0.18.0-rc.1\n00:56 - Bevy Metrics Dashboard\n01:18 - Infrastructure for Portals and Mirrors\n01:53 - Decals\n02:25 - Gizmos\n02:38 - ImageSample address_mode and filters\n03:05 - Misc PRs\n04:01 - City Generator\n04:13 - Virtual Machine\n04:26 - 3D light distribution viewer\n04:48 - INSANIO\n05:02 - WIP game worldmap\n05:11 - Kintect\n05:18 - A Dioxus/Bevy Editor\n05:24 - bevy_map_editor progress\n05:31 - Screen Annotations\n05:57 - FoilRs\n06:05 - Multitouch camera control\n06:11 - png level generation\n06:50 - Signs of Danger\n07:11 - Fish Inverse Kinematics\n07:22 Crates", "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "g8t-LRr3M2A", 536, false, "https://www.youtube.com/watch?v=g8t-LRr3M2A", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121800_Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy.mp4", false, 38, ~U[2025-12-18 12:30:00Z]] 09:33:19.176 [debug] QUERY OK source="sources" db=0.2ms idle=67.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" = ?) [38] 09:33:19.177 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:19.177 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1803892] 09:33:19.177 [debug] Current batch of media processed. Will check again in 1000ms 09:33:20.178 [debug] Current batch of media processed. Will check again in 1000ms 09:33:21.179 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 12!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/33f4b18b8be59393d297796f03d476bd4a5d7778/2025/rust/day-12/src/part1.rs\n\nhttps://adventofcode.com/2025/day/12", "duration" => 1331, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", "id" => "QX7w2oJzX9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QX7w2oJzX9Y", "playlist_index" => 10, "timestamp" => 1765542640, "title" => "Day 12 - Advent of Code 2025", "upload_date" => "20251212"} 09:33:21.179 [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" IN (?)) [38] 09:33:21.179 [debug] QUERY OK source="sources" db=0.1ms idle=198.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" = ?) [38] 09:33:21.181 [debug] QUERY OK source="media_items" db=0.9ms idle=198.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 12:30:40Z], 38] 09:33:21.181 [debug] QUERY OK source="media_items" db=0.6ms idle=200.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 12!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/33f4b18b8be59393d297796f03d476bd4a5d7778/2025/rust/day-12/src/part1.rs\n\nhttps://adventofcode.com/2025/day/12", "Day 12 - Advent of Code 2025", "214e8c0c-ed53-45f1-9ec8-c37a7ca0eaf6", "QX7w2oJzX9Y", 1331, false, "https://www.youtube.com/watch?v=QX7w2oJzX9Y", 10, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-12 12:30:40Z], ~U[2026-04-30 14:33:21Z], ~U[2026-04-30 14:33:21Z], "Advent of Code Day 12!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/33f4b18b8be59393d297796f03d476bd4a5d7778/2025/rust/day-12/src/part1.rs\n\nhttps://adventofcode.com/2025/day/12", "Day 12 - Advent of Code 2025", "QX7w2oJzX9Y", 1331, false, "https://www.youtube.com/watch?v=QX7w2oJzX9Y", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-12 12:30:40Z]] 09:33:21.182 [debug] QUERY OK source="sources" db=0.1ms idle=70.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" = ?) [38] 09:33:21.182 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:21.182 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 [1755808] 09:33:21.182 [debug] Current batch of media processed. Will check again in 1000ms 09:33:22.184 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 11!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/a74cf102ab37287d1fd48d101a2bbbfb023f5a0a/2025/rust/day-11/src\n\nhttps://adventofcode.com/2025/day/11\n\n00:00 - Part 1\n07:57 - Part 2", "duration" => 1605, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", "id" => "gYc9yptZh3Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gYc9yptZh3Q", "playlist_index" => 11, "timestamp" => 1765456267, "title" => "Day 11 - Advent of Code 2025", "upload_date" => "20251211"} 09:33:22.184 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [38] 09:33:22.184 [debug] QUERY OK source="sources" db=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" = ?) [38] 09:33:22.186 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 12:31:07Z], 38] 09:33:22.186 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 11!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/a74cf102ab37287d1fd48d101a2bbbfb023f5a0a/2025/rust/day-11/src\n\nhttps://adventofcode.com/2025/day/11\n\n00:00 - Part 1\n07:57 - Part 2", "Day 11 - Advent of Code 2025", "d6c2d685-6372-47cb-80b7-3f84c79974a3", "gYc9yptZh3Q", 1605, false, "https://www.youtube.com/watch?v=gYc9yptZh3Q", 11, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-11 12:31:07Z], ~U[2026-04-30 14:33:22Z], ~U[2026-04-30 14:33:22Z], "Advent of Code Day 11!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/a74cf102ab37287d1fd48d101a2bbbfb023f5a0a/2025/rust/day-11/src\n\nhttps://adventofcode.com/2025/day/11\n\n00:00 - Part 1\n07:57 - Part 2", "Day 11 - Advent of Code 2025", "gYc9yptZh3Q", 1605, false, "https://www.youtube.com/watch?v=gYc9yptZh3Q", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-11 12:31:07Z]] 09:33:22.187 [debug] QUERY OK source="sources" db=0.1ms idle=74.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" = ?) [38] 09:33:22.187 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:22.187 [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 [1747915] 09:33:22.187 [debug] Current batch of media processed. Will check again in 1000ms 09:33:23.188 [debug] Current batch of media processed. Will check again in 1000ms 09:33:24.189 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 10!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/d8402645b62b9c317d30c7c1c87d5aeab737b8bf/2025/rust/day-10/src/part1.rs\n\nhttps://adventofcode.com/2025/day/10\n\n\n00:00 - Day 08 Special Mentions\n00:50 - Day 10\n04:39 - bitvec", "duration" => 1971, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", "id" => "P_6IwxCTHR8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=P_6IwxCTHR8", "playlist_index" => 12, "timestamp" => 1765369841, "title" => "Day 10 - Advent of Code 2025 (No Part 2)", "upload_date" => "20251210"} 09:33:24.189 [debug] QUERY OK source="sources" db=0.2ms idle=208.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 (?)) [38] 09:33:24.190 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:24.191 [debug] QUERY OK source="media_items" db=0.9ms idle=209.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 12:30:41Z], 38] 09:33:24.192 [debug] QUERY OK source="media_items" db=0.5ms idle=210.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 10!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/d8402645b62b9c317d30c7c1c87d5aeab737b8bf/2025/rust/day-10/src/part1.rs\n\nhttps://adventofcode.com/2025/day/10\n\n\n00:00 - Day 08 Special Mentions\n00:50 - Day 10\n04:39 - bitvec", "Day 10 - Advent of Code 2025 (No Part 2)", "f3386224-7bb0-41e3-82d5-f37eb19b8185", "P_6IwxCTHR8", 1971, false, "https://www.youtube.com/watch?v=P_6IwxCTHR8", 12, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, false, false, 38, [], 98, ~U[2025-12-10 12:30:41Z], ~U[2026-04-30 14:33:24Z], ~U[2026-04-30 14:33:24Z], "Advent of Code Day 10!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/d8402645b62b9c317d30c7c1c87d5aeab737b8bf/2025/rust/day-10/src/part1.rs\n\nhttps://adventofcode.com/2025/day/10\n\n\n00:00 - Day 08 Special Mentions\n00:50 - Day 10\n04:39 - bitvec", "Day 10 - Advent of Code 2025 (No Part 2)", "P_6IwxCTHR8", 1971, false, "https://www.youtube.com/watch?v=P_6IwxCTHR8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, 38, ~U[2025-12-10 12:30:41Z]] 09:33:24.192 [debug] QUERY OK source="sources" db=0.1ms idle=76.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" = ?) [38] 09:33:24.192 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:24.192 [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 [1740020] 09:33:24.192 [debug] Current batch of media processed. Will check again in 1000ms 09:33:25.194 [debug] Current batch of media processed. Will check again in 1000ms 09:33:26.195 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 9!\n\nSolutions: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09\n\nViz: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09-viz\n\nhttps://adventofcode.com/2025/day/9\n00:00 - Day 8 Discussion\n02:32 - Part 1\n08:41 - Part 2\n23:55 - recording crashed!", "duration" => 1776, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", "id" => "RyLuE5xFLxw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RyLuE5xFLxw", "playlist_index" => 13, "timestamp" => 1765283442, "title" => "Day 09 - Advent of Code 2025", "upload_date" => "20251209"} 09:33:26.195 [debug] QUERY OK source="sources" db=0.3ms idle=214.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 (?)) [38] 09:33:26.196 [debug] QUERY OK source="sources" db=0.1ms idle=215.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" = ?) [38] 09:33:26.197 [debug] QUERY OK source="media_items" db=0.9ms idle=215.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 12:30:42Z], 38] 09:33:26.198 [debug] QUERY OK source="media_items" db=0.5ms idle=216.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 9!\n\nSolutions: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09\n\nViz: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09-viz\n\nhttps://adventofcode.com/2025/day/9\n00:00 - Day 8 Discussion\n02:32 - Part 1\n08:41 - Part 2\n23:55 - recording crashed!", "Day 09 - Advent of Code 2025", "084fa569-c54e-444f-abc4-5f45861385a7", "RyLuE5xFLxw", 1776, false, "https://www.youtube.com/watch?v=RyLuE5xFLxw", 13, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-09 12:30:42Z], ~U[2026-04-30 14:33:26Z], ~U[2026-04-30 14:33:26Z], "Advent of Code Day 9!\n\nSolutions: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09\n\nViz: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09-viz\n\nhttps://adventofcode.com/2025/day/9\n00:00 - Day 8 Discussion\n02:32 - Part 1\n08:41 - Part 2\n23:55 - recording crashed!", "Day 09 - Advent of Code 2025", "RyLuE5xFLxw", 1776, false, "https://www.youtube.com/watch?v=RyLuE5xFLxw", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-09 12:30:42Z]] 09:33:26.198 [debug] QUERY OK source="sources" db=0.1ms idle=80.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" = ?) [38] 09:33:26.198 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:26.199 [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 [1732004] 09:33:26.199 [debug] Current batch of media processed. Will check again in 1000ms 09:33:27.125 [info] {"args":{"id":33},"id":300424,"meta":{},"system_time":1777559607125706208,"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"]} 09:33:27.126 [debug] QUERY OK source="sources" db=0.1ms idle=927.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" = ?) [33] 09:33:27.126 [debug] QUERY OK source="settings" db=0.0ms idle=927.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 [] 09:33:27.126 [debug] QUERY OK source="media_items" db=0.3ms idle=927.3ms 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")))) [33] 09:33:27.127 [debug] QUERY OK source="media_items" db=0.1ms idle=7.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 09:33:27.127 [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] 09:33:27.127 [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 [] 09:33:27.127 [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 [] 09:33:27.130 [debug] QUERY OK source="media_items" db=0.5ms 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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [33] 09:33:27.131 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:33:27.131 [debug] Current batch of media processed. Will check again in 1000ms 09:33:27.131 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:33:27.131 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:33:27.131 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 09:33:27.132 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCi8C7TNs2ohrc6hnRQ5Sn2w --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/fb/6c/fb6cad06164879d97d9222390c02eb50925c8a4d458680e71a00b063f55cf907.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ad/29/ad29816180f24c0091eae240efff9966f69719f00065efa5fb7cfdcdea6267a4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:33:27.200 [debug] Current batch of media processed. Will check again in 1000ms 09:33:28.132 [debug] Current batch of media processed. Will check again in 1000ms 09:33:28.201 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Day 08 - Advent of Code 2025\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/8cf4b58e67cd246cd2c911ba1bb9c506d53c48a3/2025/rust/day-08/src\n\nhttps://adventofcode.com/2025/day/8\n\n\n00:00 - Part1\n27:56 - Part 2", "duration" => 2159, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", "id" => "auLtaZFB89Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=auLtaZFB89Q", "playlist_index" => 14, "timestamp" => 1765199566, "title" => "Day 08 - Advent of Code 2025", "upload_date" => "20251208"} 09:33:28.202 [debug] QUERY OK source="sources" db=0.2ms idle=1071.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 (?)) [38] 09:33:28.202 [debug] QUERY OK source="sources" db=0.1ms idle=1070.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" = ?) [38] 09:33:28.203 [debug] QUERY OK source="media_items" db=0.9ms idle=1070.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 13:12:46Z], 38] 09:33:28.204 [debug] QUERY OK source="media_items" db=0.5ms idle=1071.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Day 08 - Advent of Code 2025\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/8cf4b58e67cd246cd2c911ba1bb9c506d53c48a3/2025/rust/day-08/src\n\nhttps://adventofcode.com/2025/day/8\n\n\n00:00 - Part1\n27:56 - Part 2", "Day 08 - Advent of Code 2025", "8928c09a-9cb7-4df5-92c5-af96899b0079", "auLtaZFB89Q", 2159, false, "https://www.youtube.com/watch?v=auLtaZFB89Q", 14, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-08 13:12:46Z], ~U[2026-04-30 14:33:28Z], ~U[2026-04-30 14:33:28Z], "Day 08 - Advent of Code 2025\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/8cf4b58e67cd246cd2c911ba1bb9c506d53c48a3/2025/rust/day-08/src\n\nhttps://adventofcode.com/2025/day/8\n\n\n00:00 - Part1\n27:56 - Part 2", "Day 08 - Advent of Code 2025", "auLtaZFB89Q", 2159, false, "https://www.youtube.com/watch?v=auLtaZFB89Q", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-08 13:12:46Z]] 09:33:28.204 [debug] QUERY OK source="sources" db=0.1ms idle=83.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" = ?) [38] 09:33:28.204 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:28.205 [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 [1724024] 09:33:28.205 [debug] Current batch of media processed. Will check again in 1000ms 09:33:29.133 [debug] Current batch of media processed. Will check again in 1000ms 09:33:29.206 [debug] Current batch of media processed. Will check again in 1000ms 09:33:30.134 [debug] Current batch of media processed. Will check again in 1000ms 09:33:30.207 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 07!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/b85cb32bbbe1a9a4fb5000ed70ac17e3cdd2ab78/2025/rust/day-07/src\n\nhttps://adventofcode.com/2025/day/7\n\n\n00:00 - Part 1\n17:41 - Part 2", "duration" => 1695, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", "id" => "WydCrKP1tOk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WydCrKP1tOk", "playlist_index" => 15, "timestamp" => 1765110645, "title" => "Day 07 - Advent of Code 2025", "upload_date" => "20251207"} 09:33:30.207 [debug] QUERY OK source="sources" db=0.1ms idle=226.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 (?)) [38] 09:33:30.207 [debug] QUERY OK source="sources" db=0.1ms idle=226.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" = ?) [38] 09:33:30.208 [debug] QUERY OK source="media_items" db=0.9ms idle=226.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 12:30:45Z], 38] 09:33:30.210 [debug] QUERY OK source="media_items" db=1.1ms idle=228.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 07!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/b85cb32bbbe1a9a4fb5000ed70ac17e3cdd2ab78/2025/rust/day-07/src\n\nhttps://adventofcode.com/2025/day/7\n\n\n00:00 - Part 1\n17:41 - Part 2", "Day 07 - Advent of Code 2025", "51e6dc44-b0e9-4ae3-b928-bc9fb1f56707", "WydCrKP1tOk", 1695, false, "https://www.youtube.com/watch?v=WydCrKP1tOk", 15, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-07 12:30:45Z], ~U[2026-04-30 14:33:30Z], ~U[2026-04-30 14:33:30Z], "Advent of Code Day 07!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/b85cb32bbbe1a9a4fb5000ed70ac17e3cdd2ab78/2025/rust/day-07/src\n\nhttps://adventofcode.com/2025/day/7\n\n\n00:00 - Part 1\n17:41 - Part 2", "Day 07 - Advent of Code 2025", "WydCrKP1tOk", 1695, false, "https://www.youtube.com/watch?v=WydCrKP1tOk", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-07 12:30:45Z]] 09:33:30.210 [debug] QUERY OK source="sources" db=0.1ms idle=87.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" = ?) [38] 09:33:30.210 [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] 09:33:30.211 [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 [1716069] 09:33:30.211 [debug] Current batch of media processed. Will check again in 1000ms 09:33:31.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I built Taskrabbit for Witches, researched business partners, got customers, interviewed a YC Partner.\nhttps://supabase.link/yx7IfXj \ncurserapp.com is your one stop solution for booking in spells.\n\nsponsored by Supabase!\nEP2 coming.\nco-producer: Ajay Kishore.\n\nvibe coding\nreplit\nsupabase\nprogramming humor\ntech industry\nbuilding products\nselling apps\nMRR\nuser growth\nbuilding products has never been easier\nAI tools\nAI coding", "duration" => 598, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e042800_I built Taskrabbit for Witches ($100K MRR - Projected).mp4", "id" => "O7joqcfy-eU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=O7joqcfy-eU", "playlist_index" => 1, "timestamp" => 1777384701, "title" => "I built Taskrabbit for Witches ($100K MRR - Projected)", "upload_date" => "20260428"} 09:33:31.135 [debug] QUERY OK source="sources" db=0.1ms idle=924.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 (?)) [33] 09:33:31.135 [debug] QUERY OK source="sources" db=0.1ms idle=925.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" = ?) [33] 09:33:31.136 [debug] QUERY OK source="media_items" db=0.2ms idle=925.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:58:21Z], 33] 09:33:31.137 [debug] QUERY OK source="media_items" db=0.6ms idle=925.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I built Taskrabbit for Witches, researched business partners, got customers, interviewed a YC Partner.\nhttps://supabase.link/yx7IfXj \ncurserapp.com is your one stop solution for booking in spells.\n\nsponsored by Supabase!\nEP2 coming.\nco-producer: Ajay Kishore.\n\nvibe coding\nreplit\nsupabase\nprogramming humor\ntech industry\nbuilding products\nselling apps\nMRR\nuser growth\nbuilding products has never been easier\nAI tools\nAI coding", "I built Taskrabbit for Witches ($100K MRR - Projected)", "aa4b8746-ba07-4911-bab5-02f2b12acc45", "O7joqcfy-eU", 598, false, "https://www.youtube.com/watch?v=O7joqcfy-eU", 1, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e042800_I built Taskrabbit for Witches ($100K MRR - Projected).mp4", false, false, false, 33, [], 98, ~U[2026-04-28 13:58:21Z], ~U[2026-04-30 14:33:31Z], ~U[2026-04-30 14:33:31Z], "I built Taskrabbit for Witches, researched business partners, got customers, interviewed a YC Partner.\nhttps://supabase.link/yx7IfXj \ncurserapp.com is your one stop solution for booking in spells.\n\nsponsored by Supabase!\nEP2 coming.\nco-producer: Ajay Kishore.\n\nvibe coding\nreplit\nsupabase\nprogramming humor\ntech industry\nbuilding products\nselling apps\nMRR\nuser growth\nbuilding products has never been easier\nAI tools\nAI coding", "I built Taskrabbit for Witches ($100K MRR - Projected)", "O7joqcfy-eU", 598, false, "https://www.youtube.com/watch?v=O7joqcfy-eU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e042800_I built Taskrabbit for Witches ($100K MRR - Projected).mp4", false, 33, ~U[2026-04-28 13:58:21Z]] 09:33:31.137 [debug] QUERY OK source="sources" db=0.1ms idle=12.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" = ?) [33] 09:33:31.137 [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] 09:33:31.138 [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 [2830222] 09:33:31.138 [debug] Current batch of media processed. Will check again in 1000ms 09:33:31.212 [debug] Current batch of media processed. Will check again in 1000ms 09:33:32.139 [debug] Current batch of media processed. Will check again in 1000ms 09:33:32.213 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 06!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/0a03a08326fa7a3be04520e4d6d8b8904da68d8b/2025/rust/day-06/src/part2.rs\n\nhttps://adventofcode.com/2025/day/6\n\n\n00:00 - Day 6\n12:44 - Part 2", "duration" => 2631, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", "id" => "wtkYs63qE_8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wtkYs63qE_8", "playlist_index" => 16, "timestamp" => 1765024292, "title" => "Day 06 - Advent of Code 2025", "upload_date" => "20251206"} 09:33:32.213 [debug] QUERY OK source="sources" db=0.1ms idle=1076.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 (?)) [38] 09:33:32.213 [debug] QUERY OK source="sources" db=0.1ms idle=1076.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" = ?) [38] 09:33:32.215 [debug] QUERY OK source="media_items" db=1.0ms idle=1076.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-06 12:31:32Z], 38] 09:33:32.220 [debug] QUERY OK source="media_items" db=5.5ms idle=1077.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 06!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/0a03a08326fa7a3be04520e4d6d8b8904da68d8b/2025/rust/day-06/src/part2.rs\n\nhttps://adventofcode.com/2025/day/6\n\n\n00:00 - Day 6\n12:44 - Part 2", "Day 06 - Advent of Code 2025", "ed18c341-7d74-4e02-81ac-1440464533fa", "wtkYs63qE_8", 2631, false, "https://www.youtube.com/watch?v=wtkYs63qE_8", 16, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-06 12:31:32Z], ~U[2026-04-30 14:33:32Z], ~U[2026-04-30 14:33:32Z], "Advent of Code Day 06!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/0a03a08326fa7a3be04520e4d6d8b8904da68d8b/2025/rust/day-06/src/part2.rs\n\nhttps://adventofcode.com/2025/day/6\n\n\n00:00 - Day 6\n12:44 - Part 2", "Day 06 - Advent of Code 2025", "wtkYs63qE_8", 2631, false, "https://www.youtube.com/watch?v=wtkYs63qE_8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-06 12:31:32Z]] 09:33:32.221 [debug] QUERY OK source="sources" db=0.1ms idle=95.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" = ?) [38] 09:33:32.221 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.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] 09:33:32.222 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [1708301] 09:33:32.222 [debug] Current batch of media processed. Will check again in 1000ms 09:33:33.140 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Interview with a paranoid news checker.\n\nInterview with a paranoid news checker with Jackson Jineer aired on The News© 2026.\n\n\nPolymarket\niran\nus news\nnews commentary\nprediction markets\nShorting Futures\n\n#programming #humor #newscommentary", "duration" => 173, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e041500_I am monitoring the situation..mp4", "id" => "2IsR06zf8nQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2IsR06zf8nQ", "playlist_index" => 2, "timestamp" => 1776265101, "title" => "I am monitoring the situation.", "upload_date" => "20260415"} 09:33:33.140 [debug] QUERY OK source="sources" db=0.1ms idle=919.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 (?)) [33] 09:33:33.141 [debug] QUERY OK source="sources" db=0.1ms idle=919.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" = ?) [33] 09:33:33.141 [debug] QUERY OK source="media_items" db=0.2ms idle=919.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 14:58:21Z], 33] 09:33:33.142 [debug] QUERY OK source="media_items" db=0.5ms idle=919.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a paranoid news checker.\n\nInterview with a paranoid news checker with Jackson Jineer aired on The News© 2026.\n\n\nPolymarket\niran\nus news\nnews commentary\nprediction markets\nShorting Futures\n\n#programming #humor #newscommentary", "I am monitoring the situation.", "663cee9a-27b2-41c2-b2fa-5bb3be524986", "2IsR06zf8nQ", 173, false, "https://www.youtube.com/watch?v=2IsR06zf8nQ", 2, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e041500_I am monitoring the situation..mp4", false, false, false, 33, [], 98, ~U[2026-04-15 14:58:21Z], ~U[2026-04-30 14:33:33Z], ~U[2026-04-30 14:33:33Z], "Interview with a paranoid news checker.\n\nInterview with a paranoid news checker with Jackson Jineer aired on The News© 2026.\n\n\nPolymarket\niran\nus news\nnews commentary\nprediction markets\nShorting Futures\n\n#programming #humor #newscommentary", "I am monitoring the situation.", "2IsR06zf8nQ", 173, false, "https://www.youtube.com/watch?v=2IsR06zf8nQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e041500_I am monitoring the situation..mp4", false, 33, ~U[2026-04-15 14:58:21Z]] 09:33:33.142 [debug] QUERY OK source="sources" db=0.1ms idle=15.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" = ?) [33] 09:33:33.142 [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] 09:33:33.143 [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 [2737208] 09:33:33.143 [debug] Current batch of media processed. Will check again in 1000ms 09:33:33.223 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 05!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/063e9bf483a134dafbcf08ef75989c53993b2dfd/2025/rust/day-05/src\n\nhttps://adventofcode.com/2025/day/5\n\n\n\n00:00 - Day 4 Recap\n05:32 - Day 5\n16:05 - Part 2\n17:15 - Choosing Open Source Crates", "duration" => 1997, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", "id" => "9VFox4Z-Apc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9VFox4Z-Apc", "playlist_index" => 17, "timestamp" => 1764937813, "title" => "Day 05 - Advent of Code 2025", "upload_date" => "20251205"} 09:33:33.223 [debug] QUERY OK source="sources" db=0.3ms idle=81.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 (?)) [38] 09:33:33.224 [debug] QUERY OK source="sources" db=0.1ms idle=81.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" = ?) [38] 09:33:33.225 [debug] QUERY OK source="media_items" db=0.9ms idle=81.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 12:30:13Z], 38] 09:33:33.226 [debug] QUERY OK source="media_items" db=0.6ms idle=82.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 05!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/063e9bf483a134dafbcf08ef75989c53993b2dfd/2025/rust/day-05/src\n\nhttps://adventofcode.com/2025/day/5\n\n\n\n00:00 - Day 4 Recap\n05:32 - Day 5\n16:05 - Part 2\n17:15 - Choosing Open Source Crates", "Day 05 - Advent of Code 2025", "e9154338-774c-4056-8b3c-c274f0496e29", "9VFox4Z-Apc", 1997, false, "https://www.youtube.com/watch?v=9VFox4Z-Apc", 17, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-05 12:30:13Z], ~U[2026-04-30 14:33:33Z], ~U[2026-04-30 14:33:33Z], "Advent of Code Day 05!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/063e9bf483a134dafbcf08ef75989c53993b2dfd/2025/rust/day-05/src\n\nhttps://adventofcode.com/2025/day/5\n\n\n\n00:00 - Day 4 Recap\n05:32 - Day 5\n16:05 - Part 2\n17:15 - Choosing Open Source Crates", "Day 05 - Advent of Code 2025", "9VFox4Z-Apc", 1997, false, "https://www.youtube.com/watch?v=9VFox4Z-Apc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-05 12:30:13Z]] 09:33:33.226 [debug] QUERY OK source="sources" db=0.2ms idle=82.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" = ?) [38] 09:33:33.226 [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] 09:33:33.227 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 [1700307] 09:33:33.227 [debug] Current batch of media processed. Will check again in 1000ms 09:33:34.144 [debug] Current batch of media processed. Will check again in 1000ms 09:33:34.228 [debug] Current batch of media processed. Will check again in 1000ms 09:33:35.145 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "AI CEOs.\n\nInterview with a AI CEO vs AI Engineer with Josh Doe and Jackson Jineer - aired on © The AI.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nCloud Computing\nAI news\nOracle ceo news\nAI Layoffs\nTech industry\nAI progress\nWork humor\nManager talk\nGPT5\nsoftware development\n\n #software #company #corporatehumor", "duration" => 288, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e040100_AI CEO vs Engineer (2026)..mp4", "id" => "WAUnmQt2Z7Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WAUnmQt2Z7Y", "playlist_index" => 3, "timestamp" => 1775053000, "title" => "AI CEO vs Engineer (2026).", "upload_date" => "20260401"} 09:33:35.145 [debug] QUERY OK source="sources" db=0.2ms idle=164.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 (?)) [33] 09:33:35.146 [debug] QUERY OK source="sources" db=0.1ms idle=164.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" = ?) [33] 09:33:35.146 [debug] QUERY OK source="media_items" db=0.2ms idle=164.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 14:16:40Z], 33] 09:33:35.147 [debug] QUERY OK source="media_items" db=0.6ms idle=165.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["AI CEOs.\n\nInterview with a AI CEO vs AI Engineer with Josh Doe and Jackson Jineer - aired on © The AI.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nCloud Computing\nAI news\nOracle ceo news\nAI Layoffs\nTech industry\nAI progress\nWork humor\nManager talk\nGPT5\nsoftware development\n\n #software #company #corporatehumor", "AI CEO vs Engineer (2026).", "824c41dc-ce03-44a6-aa87-9175a60f93db", "WAUnmQt2Z7Y", 288, false, "https://www.youtube.com/watch?v=WAUnmQt2Z7Y", 3, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e040100_AI CEO vs Engineer (2026)..mp4", false, false, false, 33, [], 98, ~U[2026-04-01 14:16:40Z], ~U[2026-04-30 14:33:35Z], ~U[2026-04-30 14:33:35Z], "AI CEOs.\n\nInterview with a AI CEO vs AI Engineer with Josh Doe and Jackson Jineer - aired on © The AI.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nCloud Computing\nAI news\nOracle ceo news\nAI Layoffs\nTech industry\nAI progress\nWork humor\nManager talk\nGPT5\nsoftware development\n\n #software #company #corporatehumor", "AI CEO vs Engineer (2026).", "WAUnmQt2Z7Y", 288, false, "https://www.youtube.com/watch?v=WAUnmQt2Z7Y", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e040100_AI CEO vs Engineer (2026)..mp4", false, 33, ~U[2026-04-01 14:16:40Z]] 09:33:35.147 [debug] QUERY OK source="sources" db=0.1ms idle=18.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" = ?) [33] 09:33:35.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] 09:33:35.148 [debug] QUERY OK source="media_items" db=0.1ms 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 [2624707] 09:33:35.148 [debug] Current batch of media processed. Will check again in 1000ms 09:33:35.229 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 04!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/915f01e4d100b75038da216f4f8c44f431cc80d0/2025/rust/day-04/src\n\nhttps://adventofcode.com/2025/day/4\n\n\n00:00 - Prep\n02:13 - Day 4\n03:38 - approaches\n06:37 - parsing\n10:52 - NEIGHBORS\n14:26 - part 1 recap\n15:23 - part2\n23:05 - light performance work\n27:30 - tracy", "duration" => 2512, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", "id" => "6sQcSpcOflI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6sQcSpcOflI", "playlist_index" => 18, "timestamp" => 1764851416, "title" => "Day 04 - Advent of Code 2025", "upload_date" => "20251204"} 09:33:35.229 [debug] QUERY OK source="sources" db=0.2ms idle=82.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 (?)) [38] 09:33:35.229 [debug] QUERY OK source="sources" db=0.1ms idle=82.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" = ?) [38] 09:33:35.231 [debug] QUERY OK source="media_items" db=1.2ms idle=82.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 12:30:16Z], 38] 09:33:35.233 [debug] QUERY OK source="media_items" db=1.4ms idle=83.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 04!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/915f01e4d100b75038da216f4f8c44f431cc80d0/2025/rust/day-04/src\n\nhttps://adventofcode.com/2025/day/4\n\n\n00:00 - Prep\n02:13 - Day 4\n03:38 - approaches\n06:37 - parsing\n10:52 - NEIGHBORS\n14:26 - part 1 recap\n15:23 - part2\n23:05 - light performance work\n27:30 - tracy", "Day 04 - Advent of Code 2025", "fe04d11c-ce3a-4e8e-a362-6fe5a00d5062", "6sQcSpcOflI", 2512, false, "https://www.youtube.com/watch?v=6sQcSpcOflI", 18, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-04 12:30:16Z], ~U[2026-04-30 14:33:35Z], ~U[2026-04-30 14:33:35Z], "Advent of Code Day 04!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/915f01e4d100b75038da216f4f8c44f431cc80d0/2025/rust/day-04/src\n\nhttps://adventofcode.com/2025/day/4\n\n\n00:00 - Prep\n02:13 - Day 4\n03:38 - approaches\n06:37 - parsing\n10:52 - NEIGHBORS\n14:26 - part 1 recap\n15:23 - part2\n23:05 - light performance work\n27:30 - tracy", "Day 04 - Advent of Code 2025", "6sQcSpcOflI", 2512, false, "https://www.youtube.com/watch?v=6sQcSpcOflI", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-04 12:30:16Z]] 09:33:35.233 [debug] QUERY OK source="sources" db=0.1ms idle=84.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" = ?) [38] 09:33:35.233 [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] 09:33:35.234 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [1691828] 09:33:35.234 [debug] Current batch of media processed. Will check again in 1000ms 09:33:36.149 [debug] Current batch of media processed. Will check again in 1000ms 09:33:36.235 [debug] Current batch of media processed. Will check again in 1000ms 09:33:36.450 [info] {"source":"oban","duration":3336,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:36.686 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCiSIL42pQRpc-8JNiYDFyzQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/14/d3/14d3b982bde71f2b2cb11c6d66ddd13123cc43afd46a0980e0885660d726f96f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a6/62/a662a7a2e9ab04f0d6bbb5965690c67e583c8ea28e9e24d2da199e432e1e77d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:33:36.687 [debug] Gracefully stopping file follower 09:33:36.687 [debug] QUERY OK source="sources" db=0.2ms idle=1453.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 (?)) [38] 09:33:36.687 [debug] QUERY OK source="sources" db=0.1ms idle=1453.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" = ?) [38] 09:33:36.688 [debug] QUERY OK source="media_items" db=1.0ms idle=1453.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 02:35:15Z], 38] 09:33:36.689 [debug] QUERY OK source="media_items" db=0.5ms idle=557.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I submitted for Bevy Jam 7! I like the things that I worked on during the week, and (perhaps obviously) don't like the things I rushed over the weekend.\n\nCode: https://github.com/ChristopherBiscardi/bevy-jam-7/tree/6e8d26bb6f94bb62d43146b088660e7652c818bb", "My Bevy Jam 7 Entry", "c77f43a5-53f7-4ce8-8d1b-06818bdb80c3", "gaMPc-5KkOQ", 1749, false, "https://www.youtube.com/watch?v=gaMPc-5KkOQ", 1, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e021900_My Bevy Jam 7 Entry.mp4", false, false, false, 38, [], 98, ~U[2026-02-19 02:35:15Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "I submitted for Bevy Jam 7! I like the things that I worked on during the week, and (perhaps obviously) don't like the things I rushed over the weekend.\n\nCode: https://github.com/ChristopherBiscardi/bevy-jam-7/tree/6e8d26bb6f94bb62d43146b088660e7652c818bb", "My Bevy Jam 7 Entry", "gaMPc-5KkOQ", 1749, false, "https://www.youtube.com/watch?v=gaMPc-5KkOQ", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e021900_My Bevy Jam 7 Entry.mp4", false, 38, ~U[2026-02-19 02:35:15Z]] 09:33:36.690 [debug] QUERY OK source="sources" db=0.3ms idle=239.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" = ?) [38] 09:33:36.691 [debug] QUERY OK source="media_items" db=0.8ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 12:30:00Z], 38] 09:33:36.692 [debug] QUERY OK source="media_items" db=0.6ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Bevy Jam 7 is coming! Here are some of the crates that will find their way into my submission, and alternatives.\n\nbevy jam 7: https://itch.io/jam/bevy-jam-7\nbevy_cli: https://github.com/TheBevyFlock/bevy_cli\nbevy_inspector_egui: https://github.com/jakobhellermann/bevy-inspector-egui\nbevy_seedling: https://github.com/CorvusPrudens/bevy_seedling\nskein: https://bevyskein.dev/\nnoiz: https://crates.io/crates/noiz\nbevy_asset_loader: https://github.com/NiklasEi/bevy_asset_loader\nbevy_hanabi: https://github.com/djeedai/bevy_hanabi\n\n00:00 - Bevy Jam 7\n00:26 - bevy_cli\n06:26 - Inspectors\n09:56 - Input Management\n12:40 - audio\n15:29 - level editors\n17:38 - noiz\n18:45 - bevy_asset_loader\n20:01 - Particles\n20:43 - bevy_dev_tools", "Useful Crates for Bevy Jam 7", "439f79c9-ef10-400a-a278-5c8b76ed4560", "Xl2KXX_8sCs", 1323, false, "https://www.youtube.com/watch?v=Xl2KXX_8sCs", 2, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e020500_Useful Crates for Bevy Jam 7.mp4", false, false, false, 38, [], 98, ~U[2026-02-05 12:30:00Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Bevy Jam 7 is coming! Here are some of the crates that will find their way into my submission, and alternatives.\n\nbevy jam 7: https://itch.io/jam/bevy-jam-7\nbevy_cli: https://github.com/TheBevyFlock/bevy_cli\nbevy_inspector_egui: https://github.com/jakobhellermann/bevy-inspector-egui\nbevy_seedling: https://github.com/CorvusPrudens/bevy_seedling\nskein: https://bevyskein.dev/\nnoiz: https://crates.io/crates/noiz\nbevy_asset_loader: https://github.com/NiklasEi/bevy_asset_loader\nbevy_hanabi: https://github.com/djeedai/bevy_hanabi\n\n00:00 - Bevy Jam 7\n00:26 - bevy_cli\n06:26 - Inspectors\n09:56 - Input Management\n12:40 - audio\n15:29 - level editors\n17:38 - noiz\n18:45 - bevy_asset_loader\n20:01 - Particles\n20:43 - bevy_dev_tools", "Useful Crates for Bevy Jam 7", "Xl2KXX_8sCs", 1323, false, "https://www.youtube.com/watch?v=Xl2KXX_8sCs", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e020500_Useful Crates for Bevy Jam 7.mp4", false, 38, ~U[2026-02-05 12:30:00Z]] 09:33:36.692 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.693 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-21 12:30:00Z], 38] 09:33:36.694 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A flappy bird implementation in Bevy! *Flappy Bird* is meant to give you a taste of Rust through using the Bevy game engine. It is designed for a first-time Bevy user.\n\nJoin the Rust Adventure Discord if you have questions: https://discord.gg/Zd6vJvDwYu\n\nRust Adventure: https://www.rustadventure.dev/\nFlappy Bird Workshop: https://www.rustadventure.dev/flappy-bird\nBevy Jam 7: https://itch.io/jam/bevy-jam-7\n\n00:00 - Flappy Bird!\n05:02 - Camera2d Projections\n11:16 - Required Components: Gravity and Velocity\n17:19 - Triggering Observers for Out of Bounds\n21:27 - Spawning Pipes\n26:40 - Moving Pipes\n32:15 - Collision and Gizmos\n36:34 - Keeping Score\n38:45 - Background Materials\n42:35 - Cleanup and Polish", "Full Bevy 0.18 Flappy Bird Workshop", "e1738bae-3263-49c5-8aab-f3dd43d1bb7c", "jKSZ8k70dxM", 2722, false, "https://www.youtube.com/watch?v=jKSZ8k70dxM", 3, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e012100_Full Bevy 0.18 Flappy Bird Workshop.mp4", false, false, false, 38, [], 98, ~U[2026-01-21 12:30:00Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "A flappy bird implementation in Bevy! *Flappy Bird* is meant to give you a taste of Rust through using the Bevy game engine. It is designed for a first-time Bevy user.\n\nJoin the Rust Adventure Discord if you have questions: https://discord.gg/Zd6vJvDwYu\n\nRust Adventure: https://www.rustadventure.dev/\nFlappy Bird Workshop: https://www.rustadventure.dev/flappy-bird\nBevy Jam 7: https://itch.io/jam/bevy-jam-7\n\n00:00 - Flappy Bird!\n05:02 - Camera2d Projections\n11:16 - Required Components: Gravity and Velocity\n17:19 - Triggering Observers for Out of Bounds\n21:27 - Spawning Pipes\n26:40 - Moving Pipes\n32:15 - Collision and Gizmos\n36:34 - Keeping Score\n38:45 - Background Materials\n42:35 - Cleanup and Polish", "Full Bevy 0.18 Flappy Bird Workshop", "jKSZ8k70dxM", 2722, false, "https://www.youtube.com/watch?v=jKSZ8k70dxM", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e012100_Full Bevy 0.18 Flappy Bird Workshop.mp4", false, 38, ~U[2026-01-21 12:30:00Z]] 09:33:36.694 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.695 [debug] QUERY OK source="media_items" db=0.8ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-14 17:44:18Z], 38] 09:33:36.697 [debug] QUERY OK source="media_items" db=1.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["An introductory compute shader landscape generation project. We use noise and a pre-allocated mesh buffer to construct landscape and talk about how mesh attributes are packed into vertex buffers, how compute shaders get initialized and such, workgroups, and more.\n\nCode from today: https://github.com/rust-adventure/bevy-examples/tree/2384d59b24e74af068c8b350ef2940e7c685643f/examples/landscape-compute-intro\n\nPR mentioned in the video: https://github.com/bevyengine/bevy/pull/22296\n\nAsk questions in the Rust Adventure Discord: https://discord.gg/zxsWUhu6cu", "Introductory Compute Shader Landscapes in Bevy", "764e2eea-0e7f-4a60-a504-5e364bbe39c2", "yBF23EWxsc8", 3486, false, "https://www.youtube.com/watch?v=yBF23EWxsc8", 4, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011400_Introductory Compute Shader Landscapes in Bevy.mp4", false, false, false, 38, [], 97, ~U[2026-01-14 17:44:18Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "An introductory compute shader landscape generation project. We use noise and a pre-allocated mesh buffer to construct landscape and talk about how mesh attributes are packed into vertex buffers, how compute shaders get initialized and such, workgroups, and more.\n\nCode from today: https://github.com/rust-adventure/bevy-examples/tree/2384d59b24e74af068c8b350ef2940e7c685643f/examples/landscape-compute-intro\n\nPR mentioned in the video: https://github.com/bevyengine/bevy/pull/22296\n\nAsk questions in the Rust Adventure Discord: https://discord.gg/zxsWUhu6cu", "Introductory Compute Shader Landscapes in Bevy", "yBF23EWxsc8", 3486, false, "https://www.youtube.com/watch?v=yBF23EWxsc8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011400_Introductory Compute Shader Landscapes in Bevy.mp4", false, 38, ~U[2026-01-14 17:44:18Z]] 09:33:36.698 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:36.698 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-13 21:45:55Z], 38] 09:33:36.699 [debug] QUERY OK source="media_items" db=0.6ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Bevy Release: https://bevy.org/news/bevy-0-18/\nMigration Guides: https://bevy.org/learn/migration-guides/introduction/\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nRust Adventure: https://www.rustadventure.dev/", "The Bevy Game Engine 0.18 Release", "f3ad7d4b-0264-4ead-8867-cab9aede236a", "ZPsN_iQ4Ezc", 330, false, "https://www.youtube.com/watch?v=ZPsN_iQ4Ezc", 5, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011300_The Bevy Game Engine 0.18 Release.mp4", false, false, false, 38, [], 98, ~U[2026-01-13 21:45:55Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Bevy Release: https://bevy.org/news/bevy-0-18/\nMigration Guides: https://bevy.org/learn/migration-guides/introduction/\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nRust Adventure: https://www.rustadventure.dev/", "The Bevy Game Engine 0.18 Release", "ZPsN_iQ4Ezc", 330, false, "https://www.youtube.com/watch?v=ZPsN_iQ4Ezc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011300_The Bevy Game Engine 0.18 Release.mp4", false, 38, ~U[2026-01-13 21:45:55Z]] 09:33:36.700 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [38] 09:33:36.700 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-12 12:30:10Z], 38] 09:33:36.701 [debug] QUERY OK source="media_items" db=0.5ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A new type of video for the channel: devlogs. Covering Mesh Shaders, some thoughts about the channel, and Rust Adventure", "devlog: new year, mesh shaders, rust adventure", "0d60f998-6e6e-4a49-906b-300292c58cf3", "5sjyo2TKL0Y", 1987, false, "https://www.youtube.com/watch?v=5sjyo2TKL0Y", 6, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011200_devlog: new year, mesh shaders, rust adventure.mp4", false, false, false, 38, [], 98, ~U[2026-01-12 12:30:10Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "A new type of video for the channel: devlogs. Covering Mesh Shaders, some thoughts about the channel, and Rust Adventure", "devlog: new year, mesh shaders, rust adventure", "5sjyo2TKL0Y", 1987, false, "https://www.youtube.com/watch?v=5sjyo2TKL0Y", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e011200_devlog: new year, mesh shaders, rust adventure.mp4", false, 38, ~U[2026-01-12 12:30:10Z]] 09:33:36.701 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.702 [debug] QUERY OK source="media_items" db=0.7ms idle=2.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-01 03:33:41Z], 38] 09:33:36.703 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A Fistful of Boomerangs: https://4d4xfun.itch.io/bevy-jam-6\n\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nSimulo: https://store.steampowered.com/app/3291520/Simulo/\nLong Story 2: https://store.steampowered.com/app/2427820/LongStory_2/\n\nnoiz: https://docs.rs/noiz/latest/noiz/\nAvian Physics: https://github.com/avianphysics/avian\nglizmo: https://crates.io/crates/glizmo\nbevy-clipmap: https://github.com/kirillsurkov/bevy-clipmap\nmotiongfx: https://github.com/voxell-tech/motiongfx", "This Year in Bevy 2025", "76ada47f-c09d-4e55-9577-2145181bbac3", "ea-fji5ULDg", 475, false, "https://www.youtube.com/watch?v=ea-fji5ULDg", 7, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e010100_This Year in Bevy 2025.mp4", false, false, false, 38, [], 98, ~U[2026-01-01 03:33:41Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "A Fistful of Boomerangs: https://4d4xfun.itch.io/bevy-jam-6\n\nToroban: https://store.steampowered.com/app/1961850/Toroban/\nSimulo: https://store.steampowered.com/app/3291520/Simulo/\nLong Story 2: https://store.steampowered.com/app/2427820/LongStory_2/\n\nnoiz: https://docs.rs/noiz/latest/noiz/\nAvian Physics: https://github.com/avianphysics/avian\nglizmo: https://crates.io/crates/glizmo\nbevy-clipmap: https://github.com/kirillsurkov/bevy-clipmap\nmotiongfx: https://github.com/voxell-tech/motiongfx", "This Year in Bevy 2025", "ea-fji5ULDg", 475, false, "https://www.youtube.com/watch?v=ea-fji5ULDg", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2026/s2026e010100_This Year in Bevy 2025.mp4", false, 38, ~U[2026-01-01 03:33:41Z]] 09:33:36.704 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:36.705 [debug] QUERY OK source="media_items" db=0.7ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-24 12:31:13Z], 38] 09:33:36.706 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://thisweekinbevy.com/issue/2025-12-22-shift-o-souprune-and-volumetric-clouds\n\nThis week we have a combination of features that made it into the 0.18 release candidate, as well as the first PRs merged for the 0.19 cycle.\n\nMerges this week include global gizmos, glTF extension handling, a FullscreenMaterial, and more.\n\nShift-O is a Bevy Jam 6 game with updates this week, while SoupRune is an in-progress framework for Undertale/Deltarune fan games.\n\n00:00 - Shift-O, SoupRune, and Volumetric Clouds\n00:25 - Easy Demo Recording\n00:59 - Global Gizmos\n01:25 - glTF Extension Handling\n02:06 - FullscreenMaterial\n02:33 - PreviousState\n02:51 - Font Weight\n03:01 - RenderTarget as Component\n03:09 - Transparent Sorting improvements\n03:40 - Shift-O\n03:57 - SoupRune\n04:02 - Spacefaring.is\n04:12 - Volumetric Clouds\n04:35 - Kinect 360 Particles\n04:42 - Recursive Portals\n04:51 - Geometry Clipmaps\n05:04 - Cuboid Wars\n05:24 - bevy_tiled_background\n05:37 - Actuate v0.21\n05:48 - Maiu Online Devlog #8\n05:59 - How I made AAA Sky Rendering from scratch\n06:13 - Unifying the Fuller Stack with Entity Component System", "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "28bf2013-69d5-48b4-b2d6-5fe614367dfe", "jqHh06r2-Wc", 401, false, "https://www.youtube.com/watch?v=jqHh06r2-Wc", 8, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, false, false, 38, [], 98, ~U[2025-12-24 12:31:13Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "https://thisweekinbevy.com/issue/2025-12-22-shift-o-souprune-and-volumetric-clouds\n\nThis week we have a combination of features that made it into the 0.18 release candidate, as well as the first PRs merged for the 0.19 cycle.\n\nMerges this week include global gizmos, glTF extension handling, a FullscreenMaterial, and more.\n\nShift-O is a Bevy Jam 6 game with updates this week, while SoupRune is an in-progress framework for Undertale/Deltarune fan games.\n\n00:00 - Shift-O, SoupRune, and Volumetric Clouds\n00:25 - Easy Demo Recording\n00:59 - Global Gizmos\n01:25 - glTF Extension Handling\n02:06 - FullscreenMaterial\n02:33 - PreviousState\n02:51 - Font Weight\n03:01 - RenderTarget as Component\n03:09 - Transparent Sorting improvements\n03:40 - Shift-O\n03:57 - SoupRune\n04:02 - Spacefaring.is\n04:12 - Volumetric Clouds\n04:35 - Kinect 360 Particles\n04:42 - Recursive Portals\n04:51 - Geometry Clipmaps\n05:04 - Cuboid Wars\n05:24 - bevy_tiled_background\n05:37 - Actuate v0.21\n05:48 - Maiu Online Devlog #8\n05:59 - How I made AAA Sky Rendering from scratch\n06:13 - Unifying the Fuller Stack with Entity Component System", "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "jqHh06r2-Wc", 401, false, "https://www.youtube.com/watch?v=jqHh06r2-Wc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, 38, ~U[2025-12-24 12:31:13Z]] 09:33:36.706 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 09:33:36.707 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 12:30:00Z], 38] 09:33:36.708 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://thisweekinbevy.com/issue/2025-12-15-bevy-018-release-candidate-metrics-dashboard-and-more\n\nBevy 0.18-rc.1 is out! The release train is on track for this release, occurring about 3 months after the last release and as usual anything that is ready on main has been included. There is no migration guide collected onto a single page yet, so if you'd prefer to wait for that you can expect it fairly soon.\n\n00:00 - Bevy 0.18.0-rc.1\n00:56 - Bevy Metrics Dashboard\n01:18 - Infrastructure for Portals and Mirrors\n01:53 - Decals\n02:25 - Gizmos\n02:38 - ImageSample address_mode and filters\n03:05 - Misc PRs\n04:01 - City Generator\n04:13 - Virtual Machine\n04:26 - 3D light distribution viewer\n04:48 - INSANIO\n05:02 - WIP game worldmap\n05:11 - Kintect\n05:18 - A Dioxus/Bevy Editor\n05:24 - bevy_map_editor progress\n05:31 - Screen Annotations\n05:57 - FoilRs\n06:05 - Multitouch camera control\n06:11 - png level generation\n06:50 - Signs of Danger\n07:11 - Fish Inverse Kinematics\n07:22 Crates", "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "c5083385-d154-42c7-bfe6-a750de293791", "g8t-LRr3M2A", 536, false, "https://www.youtube.com/watch?v=g8t-LRr3M2A", 9, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121800_Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy.mp4", false, false, false, 38, [], 98, ~U[2025-12-18 12:30:00Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "https://thisweekinbevy.com/issue/2025-12-15-bevy-018-release-candidate-metrics-dashboard-and-more\n\nBevy 0.18-rc.1 is out! The release train is on track for this release, occurring about 3 months after the last release and as usual anything that is ready on main has been included. There is no migration guide collected onto a single page yet, so if you'd prefer to wait for that you can expect it fairly soon.\n\n00:00 - Bevy 0.18.0-rc.1\n00:56 - Bevy Metrics Dashboard\n01:18 - Infrastructure for Portals and Mirrors\n01:53 - Decals\n02:25 - Gizmos\n02:38 - ImageSample address_mode and filters\n03:05 - Misc PRs\n04:01 - City Generator\n04:13 - Virtual Machine\n04:26 - 3D light distribution viewer\n04:48 - INSANIO\n05:02 - WIP game worldmap\n05:11 - Kintect\n05:18 - A Dioxus/Bevy Editor\n05:24 - bevy_map_editor progress\n05:31 - Screen Annotations\n05:57 - FoilRs\n06:05 - Multitouch camera control\n06:11 - png level generation\n06:50 - Signs of Danger\n07:11 - Fish Inverse Kinematics\n07:22 Crates", "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "g8t-LRr3M2A", 536, false, "https://www.youtube.com/watch?v=g8t-LRr3M2A", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121800_Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy.mp4", false, 38, ~U[2025-12-18 12:30:00Z]] 09:33:36.709 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.710 [debug] QUERY OK source="media_items" db=0.8ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 12:30:40Z], 38] 09:33:36.710 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 12!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/33f4b18b8be59393d297796f03d476bd4a5d7778/2025/rust/day-12/src/part1.rs\n\nhttps://adventofcode.com/2025/day/12", "Day 12 - Advent of Code 2025", "ebd8f27e-37cc-4035-adfd-c8929072e2b5", "QX7w2oJzX9Y", 1331, false, "https://www.youtube.com/watch?v=QX7w2oJzX9Y", 10, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-12 12:30:40Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 12!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/33f4b18b8be59393d297796f03d476bd4a5d7778/2025/rust/day-12/src/part1.rs\n\nhttps://adventofcode.com/2025/day/12", "Day 12 - Advent of Code 2025", "QX7w2oJzX9Y", 1331, false, "https://www.youtube.com/watch?v=QX7w2oJzX9Y", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-12 12:30:40Z]] 09:33:36.711 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.712 [debug] QUERY OK source="media_items" db=0.8ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 12:31:07Z], 38] 09:33:36.712 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 11!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/a74cf102ab37287d1fd48d101a2bbbfb023f5a0a/2025/rust/day-11/src\n\nhttps://adventofcode.com/2025/day/11\n\n00:00 - Part 1\n07:57 - Part 2", "Day 11 - Advent of Code 2025", "4418ab1e-bf55-4390-a3fc-78823da0114a", "gYc9yptZh3Q", 1605, false, "https://www.youtube.com/watch?v=gYc9yptZh3Q", 11, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-11 12:31:07Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 11!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/a74cf102ab37287d1fd48d101a2bbbfb023f5a0a/2025/rust/day-11/src\n\nhttps://adventofcode.com/2025/day/11\n\n00:00 - Part 1\n07:57 - Part 2", "Day 11 - Advent of Code 2025", "gYc9yptZh3Q", 1605, false, "https://www.youtube.com/watch?v=gYc9yptZh3Q", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-11 12:31:07Z]] 09:33:36.713 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.714 [debug] QUERY OK source="media_items" db=0.7ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 12:30:41Z], 38] 09:33:36.715 [debug] QUERY OK source="media_items" db=0.6ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 10!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/d8402645b62b9c317d30c7c1c87d5aeab737b8bf/2025/rust/day-10/src/part1.rs\n\nhttps://adventofcode.com/2025/day/10\n\n\n00:00 - Day 08 Special Mentions\n00:50 - Day 10\n04:39 - bitvec", "Day 10 - Advent of Code 2025 (No Part 2)", "d6abb7eb-cf55-410e-9038-a95df3ab76de", "P_6IwxCTHR8", 1971, false, "https://www.youtube.com/watch?v=P_6IwxCTHR8", 12, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, false, false, 38, [], 98, ~U[2025-12-10 12:30:41Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 10!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/d8402645b62b9c317d30c7c1c87d5aeab737b8bf/2025/rust/day-10/src/part1.rs\n\nhttps://adventofcode.com/2025/day/10\n\n\n00:00 - Day 08 Special Mentions\n00:50 - Day 10\n04:39 - bitvec", "Day 10 - Advent of Code 2025 (No Part 2)", "P_6IwxCTHR8", 1971, false, "https://www.youtube.com/watch?v=P_6IwxCTHR8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, 38, ~U[2025-12-10 12:30:41Z]] 09:33:36.715 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.716 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 12:30:42Z], 38] 09:33:36.717 [debug] QUERY OK source="media_items" db=0.6ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 9!\n\nSolutions: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09\n\nViz: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09-viz\n\nhttps://adventofcode.com/2025/day/9\n00:00 - Day 8 Discussion\n02:32 - Part 1\n08:41 - Part 2\n23:55 - recording crashed!", "Day 09 - Advent of Code 2025", "f70fc846-4d4e-4147-bafe-21ee923f8418", "RyLuE5xFLxw", 1776, false, "https://www.youtube.com/watch?v=RyLuE5xFLxw", 13, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-09 12:30:42Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 9!\n\nSolutions: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09\n\nViz: https://github.com/ChristopherBiscardi/advent-of-code/tree/16f6745671af5ac38f8e128819fa3fc8f2f7534a/2025/rust/day-09-viz\n\nhttps://adventofcode.com/2025/day/9\n00:00 - Day 8 Discussion\n02:32 - Part 1\n08:41 - Part 2\n23:55 - recording crashed!", "Day 09 - Advent of Code 2025", "RyLuE5xFLxw", 1776, false, "https://www.youtube.com/watch?v=RyLuE5xFLxw", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-09 12:30:42Z]] 09:33:36.717 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.718 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 13:12:46Z], 38] 09:33:36.719 [debug] QUERY OK source="media_items" db=0.6ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Day 08 - Advent of Code 2025\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/8cf4b58e67cd246cd2c911ba1bb9c506d53c48a3/2025/rust/day-08/src\n\nhttps://adventofcode.com/2025/day/8\n\n\n00:00 - Part1\n27:56 - Part 2", "Day 08 - Advent of Code 2025", "1c2919fc-ccc9-49cf-85dc-52cce2c5a946", "auLtaZFB89Q", 2159, false, "https://www.youtube.com/watch?v=auLtaZFB89Q", 14, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-08 13:12:46Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Day 08 - Advent of Code 2025\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/8cf4b58e67cd246cd2c911ba1bb9c506d53c48a3/2025/rust/day-08/src\n\nhttps://adventofcode.com/2025/day/8\n\n\n00:00 - Part1\n27:56 - Part 2", "Day 08 - Advent of Code 2025", "auLtaZFB89Q", 2159, false, "https://www.youtube.com/watch?v=auLtaZFB89Q", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-08 13:12:46Z]] 09:33:36.719 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.720 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 12:30:45Z], 38] 09:33:36.721 [debug] QUERY OK source="media_items" db=0.5ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 07!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/b85cb32bbbe1a9a4fb5000ed70ac17e3cdd2ab78/2025/rust/day-07/src\n\nhttps://adventofcode.com/2025/day/7\n\n\n00:00 - Part 1\n17:41 - Part 2", "Day 07 - Advent of Code 2025", "acde66bd-31b6-4593-b4bb-d4dbf1f8beb3", "WydCrKP1tOk", 1695, false, "https://www.youtube.com/watch?v=WydCrKP1tOk", 15, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-07 12:30:45Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 07!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/b85cb32bbbe1a9a4fb5000ed70ac17e3cdd2ab78/2025/rust/day-07/src\n\nhttps://adventofcode.com/2025/day/7\n\n\n00:00 - Part 1\n17:41 - Part 2", "Day 07 - Advent of Code 2025", "WydCrKP1tOk", 1695, false, "https://www.youtube.com/watch?v=WydCrKP1tOk", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-07 12:30:45Z]] 09:33:36.721 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.722 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-06 12:31:32Z], 38] 09:33:36.722 [debug] QUERY OK source="media_items" db=0.6ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 06!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/0a03a08326fa7a3be04520e4d6d8b8904da68d8b/2025/rust/day-06/src/part2.rs\n\nhttps://adventofcode.com/2025/day/6\n\n\n00:00 - Day 6\n12:44 - Part 2", "Day 06 - Advent of Code 2025", "dcceceba-6adc-406a-9443-a768c32ebed7", "wtkYs63qE_8", 2631, false, "https://www.youtube.com/watch?v=wtkYs63qE_8", 16, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-06 12:31:32Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 06!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/0a03a08326fa7a3be04520e4d6d8b8904da68d8b/2025/rust/day-06/src/part2.rs\n\nhttps://adventofcode.com/2025/day/6\n\n\n00:00 - Day 6\n12:44 - Part 2", "Day 06 - Advent of Code 2025", "wtkYs63qE_8", 2631, false, "https://www.youtube.com/watch?v=wtkYs63qE_8", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-06 12:31:32Z]] 09:33:36.723 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.724 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 12:30:13Z], 38] 09:33:36.724 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 05!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/063e9bf483a134dafbcf08ef75989c53993b2dfd/2025/rust/day-05/src\n\nhttps://adventofcode.com/2025/day/5\n\n\n\n00:00 - Day 4 Recap\n05:32 - Day 5\n16:05 - Part 2\n17:15 - Choosing Open Source Crates", "Day 05 - Advent of Code 2025", "d3e18207-b8e7-4261-89ae-2c655d42a1d9", "9VFox4Z-Apc", 1997, false, "https://www.youtube.com/watch?v=9VFox4Z-Apc", 17, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-05 12:30:13Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 05!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/063e9bf483a134dafbcf08ef75989c53993b2dfd/2025/rust/day-05/src\n\nhttps://adventofcode.com/2025/day/5\n\n\n\n00:00 - Day 4 Recap\n05:32 - Day 5\n16:05 - Part 2\n17:15 - Choosing Open Source Crates", "Day 05 - Advent of Code 2025", "9VFox4Z-Apc", 1997, false, "https://www.youtube.com/watch?v=9VFox4Z-Apc", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-05 12:30:13Z]] 09:33:36.725 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.726 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 12:30:16Z], 38] 09:33:36.726 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 04!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/915f01e4d100b75038da216f4f8c44f431cc80d0/2025/rust/day-04/src\n\nhttps://adventofcode.com/2025/day/4\n\n\n00:00 - Prep\n02:13 - Day 4\n03:38 - approaches\n06:37 - parsing\n10:52 - NEIGHBORS\n14:26 - part 1 recap\n15:23 - part2\n23:05 - light performance work\n27:30 - tracy", "Day 04 - Advent of Code 2025", "d9000896-bb5e-474c-9138-7f48d4dfcbf0", "6sQcSpcOflI", 2512, false, "https://www.youtube.com/watch?v=6sQcSpcOflI", 18, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-04 12:30:16Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 04!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/915f01e4d100b75038da216f4f8c44f431cc80d0/2025/rust/day-04/src\n\nhttps://adventofcode.com/2025/day/4\n\n\n00:00 - Prep\n02:13 - Day 4\n03:38 - approaches\n06:37 - parsing\n10:52 - NEIGHBORS\n14:26 - part 1 recap\n15:23 - part2\n23:05 - light performance work\n27:30 - tracy", "Day 04 - Advent of Code 2025", "6sQcSpcOflI", 2512, false, "https://www.youtube.com/watch?v=6sQcSpcOflI", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-04 12:30:16Z]] 09:33:36.727 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [38] 09:33:36.728 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-03 12:31:03Z], 38] 09:33:36.728 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Advent of Code Day 03!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/634a84a2ad239b3f932d625d8edfb1ba3589bf6c/2025/rust/day-03/src/part2.rs\n\nhttps://adventofcode.com/2025/day/3\n\n\n00:00 - Prep\n01:03 - Day 03\n03:07 - first test\n07:09 - debugging\n07:48 - debug_assert\n12:46 - temporary freed\n15:50 - part2\n30:55 - cargo bench", "Day 03 - Advent of Code 2025", "3a29c18b-a89d-4a21-92ed-a9f096b3b7bd", "d28gm-rL_rA", 1878, false, "https://www.youtube.com/watch?v=d28gm-rL_rA", 19, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, false, false, 38, [], 98, ~U[2025-12-03 12:31:03Z], ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], "Advent of Code Day 03!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/634a84a2ad239b3f932d625d8edfb1ba3589bf6c/2025/rust/day-03/src/part2.rs\n\nhttps://adventofcode.com/2025/day/3\n\n\n00:00 - Prep\n01:03 - Day 03\n03:07 - first test\n07:09 - debugging\n07:48 - debug_assert\n12:46 - temporary freed\n15:50 - part2\n30:55 - cargo bench", "Day 03 - Advent of Code 2025", "d28gm-rL_rA", 1878, false, "https://www.youtube.com/watch?v=d28gm-rL_rA", "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, 38, ~U[2025-12-03 12:31:03Z]] 09:33:36.729 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z], 38] 09:33:36.730 [debug] QUERY OK source="media_items" db=0.8ms 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" FROM "media_items" AS m0 INNER JOIN "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")))) [38] 09:33:36.731 [debug] QUERY OK source="media_items" db=0.8ms idle=3.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")))) [38] 09:33:36.731 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 09:33:36.732 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300682, 38, ~U[2026-04-30 14:33:36Z], ~U[2026-04-30 14:33:36Z]] 09:33:36.733 [info] {"args":{"id":38},"id":300423,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":36643977,"event":"job:stop","queue_time":156742,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:33:37.150 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The CEO.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nAI news\nAI progress\nWork humor\nManager talk\nGPT5\nMultimodal\nsoftware development\n\n #software #company #corporatehumor", "duration" => 246, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e031800_Interview with a 'sweating' AI CEO (2026).mp4", "id" => "tnYaExb5JvM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tnYaExb5JvM", "playlist_index" => 4, "timestamp" => 1773853488, "title" => "Interview with a 'sweating' AI CEO (2026)", "upload_date" => "20260318"} 09:33:37.150 [debug] QUERY OK source="sources" db=0.3ms idle=417.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 (?)) [33] 09:33:37.151 [debug] QUERY OK source="sources" db=0.1ms idle=418.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" = ?) [33] 09:33:37.151 [debug] QUERY OK source="media_items" db=0.2ms idle=418.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 17:04:48Z], 33] 09:33:37.153 [debug] QUERY OK source="media_items" db=1.5ms idle=412.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The CEO.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nAI news\nAI progress\nWork humor\nManager talk\nGPT5\nMultimodal\nsoftware development\n\n #software #company #corporatehumor", "Interview with a 'sweating' AI CEO (2026)", "b78c31a8-9e40-45c1-a948-55cbea08579f", "tnYaExb5JvM", 246, false, "https://www.youtube.com/watch?v=tnYaExb5JvM", 4, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e031800_Interview with a 'sweating' AI CEO (2026).mp4", false, false, false, 33, [], 98, ~U[2026-03-18 17:04:48Z], ~U[2026-04-30 14:33:37Z], ~U[2026-04-30 14:33:37Z], "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The CEO.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nAI news\nAI progress\nWork humor\nManager talk\nGPT5\nMultimodal\nsoftware development\n\n #software #company #corporatehumor", "Interview with a 'sweating' AI CEO (2026)", "tnYaExb5JvM", 246, false, "https://www.youtube.com/watch?v=tnYaExb5JvM", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e031800_Interview with a 'sweating' AI CEO (2026).mp4", false, 33, ~U[2026-03-18 17:04:48Z]] 09:33:37.153 [debug] QUERY OK source="sources" db=0.1ms idle=20.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" = ?) [33] 09:33:37.154 [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] 09:33:37.154 [debug] QUERY OK source="media_items" db=0.1ms 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 [2517239] 09:33:37.154 [debug] Current batch of media processed. Will check again in 1000ms 09:33:38.154 [debug] Current batch of media processed. Will check again in 1000ms 09:33:39.156 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Shipping a button in the age of cloud, vibe coding, JS frameworks.\n\nT3 \nT4\n\n#programming \n#javascript\n#humor", "duration" => 578, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e030400_Shipping a button in 2026….mp4", "id" => "xE9W9Ghe4Jk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xE9W9Ghe4Jk", "playlist_index" => 5, "timestamp" => 1772634090, "title" => "Shipping a button in 2026…", "upload_date" => "20260304"} 09:33:39.156 [debug] QUERY OK source="sources" db=0.4ms idle=175.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 (?)) [33] 09:33:39.157 [debug] QUERY OK source="sources" db=0.2ms idle=176.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" = ?) [33] 09:33:39.157 [debug] QUERY OK source="media_items" db=0.3ms idle=176.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-04 14:21:30Z], 33] 09:33:39.158 [debug] QUERY OK source="media_items" db=0.5ms idle=177.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Shipping a button in the age of cloud, vibe coding, JS frameworks.\n\nT3 \nT4\n\n#programming \n#javascript\n#humor", "Shipping a button in 2026…", "d1593dbe-cbba-431e-9e68-0f0a15723985", "xE9W9Ghe4Jk", 578, false, "https://www.youtube.com/watch?v=xE9W9Ghe4Jk", 5, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e030400_Shipping a button in 2026….mp4", false, false, false, 33, [], 98, ~U[2026-03-04 14:21:30Z], ~U[2026-04-30 14:33:39Z], ~U[2026-04-30 14:33:39Z], "Shipping a button in the age of cloud, vibe coding, JS frameworks.\n\nT3 \nT4\n\n#programming \n#javascript\n#humor", "Shipping a button in 2026…", "xE9W9Ghe4Jk", 578, false, "https://www.youtube.com/watch?v=xE9W9Ghe4Jk", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e030400_Shipping a button in 2026….mp4", false, 33, ~U[2026-03-04 14:21:30Z]] 09:33:39.159 [debug] QUERY OK source="sources" db=0.1ms idle=24.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" = ?) [33] 09:33:39.159 [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] 09:33:39.159 [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 [2407051] 09:33:39.159 [debug] Current batch of media processed. Will check again in 1000ms 09:33:40.160 [debug] Current batch of media processed. Will check again in 1000ms 09:33:41.161 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Just use a VPS bro…\n\nInterview with a VPS bro with Jack Borrough - aired on © The VPS.\nMusic: Paramore - Emergency\n\nOpenclaw installation guide\nLinux server installation guide\nOpenClaw VPS setup\nNext-gen ai\nAnthropic Claude \nLinux server setup\nProgramming humor\nProgrammer memes\nSystems", "duration" => 465, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e020500_Interview with ‘Just use a VPS’ bro (OpenClaw version)..mp4", "id" => "40SnEd1RWUU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=40SnEd1RWUU", "playlist_index" => 6, "timestamp" => 1770313897, "title" => "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "upload_date" => "20260205"} 09:33:41.161 [debug] QUERY OK source="sources" db=0.2ms idle=180.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 (?)) [33] 09:33:41.162 [debug] QUERY OK source="sources" db=0.1ms idle=180.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" = ?) [33] 09:33:41.162 [debug] QUERY OK source="media_items" db=0.2ms idle=180.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 17:51:37Z], 33] 09:33:41.163 [debug] QUERY OK source="media_items" db=0.6ms idle=181.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Just use a VPS bro…\n\nInterview with a VPS bro with Jack Borrough - aired on © The VPS.\nMusic: Paramore - Emergency\n\nOpenclaw installation guide\nLinux server installation guide\nOpenClaw VPS setup\nNext-gen ai\nAnthropic Claude \nLinux server setup\nProgramming humor\nProgrammer memes\nSystems", "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "b1ac6dad-9097-4b32-89a2-176b0a362f34", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", 6, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e020500_Interview with ‘Just use a VPS’ bro (OpenClaw version)..mp4", false, false, false, 33, [], 98, ~U[2026-02-05 17:51:37Z], ~U[2026-04-30 14:33:41Z], ~U[2026-04-30 14:33:41Z], "Just use a VPS bro…\n\nInterview with a VPS bro with Jack Borrough - aired on © The VPS.\nMusic: Paramore - Emergency\n\nOpenclaw installation guide\nLinux server installation guide\nOpenClaw VPS setup\nNext-gen ai\nAnthropic Claude \nLinux server setup\nProgramming humor\nProgrammer memes\nSystems", "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e020500_Interview with ‘Just use a VPS’ bro (OpenClaw version)..mp4", false, 33, ~U[2026-02-05 17:51:37Z]] 09:33:41.163 [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" = ?) [33] 09:33:41.164 [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] 09:33:41.164 [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 [2196433] 09:33:41.164 [debug] Current batch of media processed. Will check again in 1000ms 09:33:42.164 [debug] Current batch of media processed. Will check again in 1000ms 09:33:43.166 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Interview with a Santa Claus\n\nInterview with a Santa Clause in 2025 with Santa Wallis - aired on © The Christmas.\n\nProgrammer humor\nProgramming memes\nJavascript humor\nReact hydration\nDevops \nGrafana\nCloud engineering\nPrometheus\nObservability\nDocker Containers\nK8s", "duration" => 231, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", "id" => "uMoql_RYVBQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uMoql_RYVBQ", "playlist_index" => 7, "timestamp" => 1766507866, "title" => "Santa Claus on delivering 99% Uptime", "upload_date" => "20251223"} 09:33:43.166 [debug] QUERY OK source="sources" db=0.2ms idle=185.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 (?)) [33] 09:33:43.166 [debug] QUERY OK source="sources" db=0.1ms idle=185.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" = ?) [33] 09:33:43.167 [debug] QUERY OK source="media_items" db=0.2ms idle=186.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 16:37:46Z], 33] 09:33:43.168 [debug] QUERY OK source="media_items" db=0.6ms idle=186.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a Santa Claus\n\nInterview with a Santa Clause in 2025 with Santa Wallis - aired on © The Christmas.\n\nProgrammer humor\nProgramming memes\nJavascript humor\nReact hydration\nDevops \nGrafana\nCloud engineering\nPrometheus\nObservability\nDocker Containers\nK8s", "Santa Claus on delivering 99% Uptime", "3905072f-a192-41e6-9532-4521bcd2c3e8", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", 7, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, false, false, 33, [], 98, ~U[2025-12-23 16:37:46Z], ~U[2026-04-30 14:33:43Z], ~U[2026-04-30 14:33:43Z], "Interview with a Santa Claus\n\nInterview with a Santa Clause in 2025 with Santa Wallis - aired on © The Christmas.\n\nProgrammer humor\nProgramming memes\nJavascript humor\nReact hydration\nDevops \nGrafana\nCloud engineering\nPrometheus\nObservability\nDocker Containers\nK8s", "Santa Claus on delivering 99% Uptime", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, 33, ~U[2025-12-23 16:37:46Z]] 09:33:43.168 [debug] QUERY OK source="sources" db=0.1ms idle=29.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" = ?) [33] 09:33:43.168 [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] 09:33:43.169 [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 [1844510] 09:33:43.169 [debug] Current batch of media processed. Will check again in 1000ms 09:33:44.170 [debug] Current batch of media processed. Will check again in 1000ms 09:33:45.171 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Look at all these NPCs 2025.\nNot an ad.\n10x engineer - Midlife crisis.\nInspired & Music by @o@omalleyrocklugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "duration" => 288, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_NPCs….mp4", "id" => "d4JL1IDupYI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d4JL1IDupYI", "playlist_index" => 8, "timestamp" => 1763566546, "title" => "NPCs…", "upload_date" => "20251119"} 09:33:45.171 [debug] QUERY OK source="sources" db=0.2ms idle=190.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 (?)) [33] 09:33:45.171 [debug] QUERY OK source="sources" db=0.1ms idle=190.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" = ?) [33] 09:33:45.172 [debug] QUERY OK source="media_items" db=0.2ms idle=191.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-19 15:35:46Z], 33] 09:33:45.173 [debug] QUERY OK source="media_items" db=0.6ms idle=191.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Look at all these NPCs 2025.\nNot an ad.\n10x engineer - Midlife crisis.\nInspired & Music by @o@omalleyrocklugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "NPCs…", "2362ea1d-7c8b-47d2-a554-539ba4c1c44a", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", 8, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_NPCs….mp4", false, false, false, 33, [], 98, ~U[2025-11-19 15:35:46Z], ~U[2026-04-30 14:33:45Z], ~U[2026-04-30 14:33:45Z], "Look at all these NPCs 2025.\nNot an ad.\n10x engineer - Midlife crisis.\nInspired & Music by @o@omalleyrocklugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "NPCs…", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_NPCs….mp4", false, 33, ~U[2025-11-19 15:35:46Z]] 09:33:45.173 [debug] QUERY OK source="sources" db=0.2ms idle=33.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" = ?) [33] 09:33:45.174 [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] 09:33:45.174 [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 [1576479] 09:33:45.174 [debug] Current batch of media processed. Will check again in 1000ms 09:33:46.175 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vice Presidents at Corporate.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nSAFe\nManager humor\nWork humor\nPM Humor\nConsulting work\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\nbig company\n\n #software #company #corporatehumor", "duration" => 342, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's Vice President..mp4", "id" => "3EfYy04o4J4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3EfYy04o4J4", "playlist_index" => 9, "timestamp" => 1762960024, "title" => "Interview with Dying Company's Vice President.", "upload_date" => "20251112"} 09:33:46.176 [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 (?)) [33] 09:33:46.176 [debug] QUERY OK source="sources" db=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" = ?) [33] 09:33:46.176 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-12 15:07:04Z], 33] 09:33:46.178 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents at Corporate.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nSAFe\nManager humor\nWork humor\nPM Humor\nConsulting work\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\nbig company\n\n #software #company #corporatehumor", "Interview with Dying Company's Vice President.", "ca1a8abb-7bb4-4cb0-9824-e86fb5d068cd", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", 9, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's Vice President..mp4", false, false, false, 33, [], 98, ~U[2025-11-12 15:07:04Z], ~U[2026-04-30 14:33:46Z], ~U[2026-04-30 14:33:46Z], "Vice Presidents at Corporate.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nSAFe\nManager humor\nWork humor\nPM Humor\nConsulting work\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\nbig company\n\n #software #company #corporatehumor", "Interview with Dying Company's Vice President.", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's Vice President..mp4", false, 33, ~U[2025-11-12 15:07:04Z]] 09:33:46.178 [debug] QUERY OK source="sources" db=0.1ms idle=35.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" = ?) [33] 09:33:46.178 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:46.179 [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 [1517904] 09:33:46.179 [debug] Current batch of media processed. Will check again in 1000ms 09:33:47.180 [debug] Current batch of media processed. Will check again in 1000ms 09:33:48.181 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nProduct Owner\nManager humor\nWork humor\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\n\n #software #company #corporatehumor", "duration" => 290, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Interview with Dying Company's Manager..mp4", "id" => "VCivp2qnhr8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VCivp2qnhr8", "playlist_index" => 10, "timestamp" => 1762358281, "title" => "Interview with Dying Company's Manager.", "upload_date" => "20251105"} 09:33:48.181 [debug] QUERY OK source="sources" db=0.2ms idle=200.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 (?)) [33] 09:33:48.181 [debug] QUERY OK source="sources" db=0.1ms idle=200.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" = ?) [33] 09:33:48.182 [debug] QUERY OK source="media_items" db=0.2ms idle=201.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-05 15:58:01Z], 33] 09:33:48.183 [debug] QUERY OK source="media_items" db=0.7ms idle=201.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nProduct Owner\nManager humor\nWork humor\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\n\n #software #company #corporatehumor", "Interview with Dying Company's Manager.", "9b839c19-bd47-41d2-a253-5da20733f3fd", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", 10, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Interview with Dying Company's Manager..mp4", false, false, false, 33, [], 98, ~U[2025-11-05 15:58:01Z], ~U[2026-04-30 14:33:48Z], ~U[2026-04-30 14:33:48Z], "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nProduct Owner\nManager humor\nWork humor\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\n\n #software #company #corporatehumor", "Interview with Dying Company's Manager.", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Interview with Dying Company's Manager..mp4", false, 33, ~U[2025-11-05 15:58:01Z]] 09:33:48.183 [debug] QUERY OK source="sources" db=0.2ms idle=38.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" = ?) [33] 09:33:48.184 [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] 09:33:48.184 [debug] QUERY OK source="media_items" db=0.2ms 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 [1463175] 09:33:48.184 [debug] Current batch of media processed. Will check again in 1000ms 09:33:49.185 [debug] Current batch of media processed. Will check again in 1000ms 09:33:50.186 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Episode 3 - \"Sunglasses\"\n\n\nProgrammer humor\nProgramming jokes\nProgramming memes\nAI programming humor\ncracked swe\nLinux\ncoding humor\n10x engineer\nHacker lifestyle\nhackers movie\njavascript humor\nrust programming\n\n#programming\n#jokes\n#humor", "duration" => 352, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", "id" => "cwq2FfpTIAE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cwq2FfpTIAE", "playlist_index" => 11, "timestamp" => 1761668862, "title" => "Next-door 10x engineer (Part 3)", "upload_date" => "20251028"} 09:33:50.186 [debug] QUERY OK source="sources" db=0.1ms idle=205.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 (?)) [33] 09:33:50.187 [debug] QUERY OK source="sources" db=0.1ms idle=205.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" = ?) [33] 09:33:50.187 [debug] QUERY OK source="media_items" db=0.2ms idle=206.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-28 16:27:42Z], 33] 09:33:50.189 [debug] QUERY OK source="media_items" db=1.4ms idle=206.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Episode 3 - \"Sunglasses\"\n\n\nProgrammer humor\nProgramming jokes\nProgramming memes\nAI programming humor\ncracked swe\nLinux\ncoding humor\n10x engineer\nHacker lifestyle\nhackers movie\njavascript humor\nrust programming\n\n#programming\n#jokes\n#humor", "Next-door 10x engineer (Part 3)", "0b5fed85-168b-4908-9132-5b47191b2b9e", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", 11, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, false, false, 33, [], 98, ~U[2025-10-28 16:27:42Z], ~U[2026-04-30 14:33:50Z], ~U[2026-04-30 14:33:50Z], "Episode 3 - \"Sunglasses\"\n\n\nProgrammer humor\nProgramming jokes\nProgramming memes\nAI programming humor\ncracked swe\nLinux\ncoding humor\n10x engineer\nHacker lifestyle\nhackers movie\njavascript humor\nrust programming\n\n#programming\n#jokes\n#humor", "Next-door 10x engineer (Part 3)", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, 33, ~U[2025-10-28 16:27:42Z]] 09:33:50.189 [debug] QUERY OK source="sources" db=0.2ms idle=40.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" = ?) [33] 09:33:50.190 [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] 09:33:50.190 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [1402023] 09:33:50.190 [debug] Current batch of media processed. Will check again in 1000ms 09:33:51.191 [debug] Current batch of media processed. Will check again in 1000ms 09:33:52.192 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Professional Tourist\n\nshowing you all the tools you need for professional tourism life linkgraph.net\n\nTripadvisor\ngoogle earth\nprogrammer traveling\ntravel life\nTravel Guide Comedy\nTravel comedy\nTravell guide comedy\nTraveller\nTravel Tools\nBest Hostel Hacks\nsunburn Tracker\nPicture Shadow tracker", "duration" => 338, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", "id" => "JsB80oxyUYg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JsB80oxyUYg", "playlist_index" => 12, "timestamp" => 1756398918, "title" => "10x Tourist", "upload_date" => "20250828"} 09:33:52.192 [debug] QUERY OK source="sources" db=0.2ms idle=211.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 (?)) [33] 09:33:52.193 [debug] QUERY OK source="sources" db=0.1ms idle=211.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" = ?) [33] 09:33:52.193 [debug] QUERY OK source="media_items" db=0.3ms idle=212.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 16:35:18Z], 33] 09:33:52.194 [debug] QUERY OK source="media_items" db=0.7ms idle=212.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Professional Tourist\n\nshowing you all the tools you need for professional tourism life linkgraph.net\n\nTripadvisor\ngoogle earth\nprogrammer traveling\ntravel life\nTravel Guide Comedy\nTravel comedy\nTravell guide comedy\nTraveller\nTravel Tools\nBest Hostel Hacks\nsunburn Tracker\nPicture Shadow tracker", "10x Tourist", "a82c0509-c3f9-4360-a35b-198411b923f0", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", 12, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, false, false, 33, [], 98, ~U[2025-08-28 16:35:18Z], ~U[2026-04-30 14:33:52Z], ~U[2026-04-30 14:33:52Z], "Professional Tourist\n\nshowing you all the tools you need for professional tourism life linkgraph.net\n\nTripadvisor\ngoogle earth\nprogrammer traveling\ntravel life\nTravel Guide Comedy\nTravel comedy\nTravell guide comedy\nTraveller\nTravel Tools\nBest Hostel Hacks\nsunburn Tracker\nPicture Shadow tracker", "10x Tourist", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, 33, ~U[2025-08-28 16:35:18Z]] 09:33:52.195 [debug] QUERY OK source="sources" db=0.2ms idle=43.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" = ?) [33] 09:33:52.195 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:33:52.195 [debug] QUERY OK source="media_items" db=0.2ms 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 [955660] 09:33:52.195 [debug] Current batch of media processed. Will check again in 1000ms 09:33:53.197 [debug] Current batch of media processed. Will check again in 1000ms 09:33:54.198 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Cloud Architects\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Cloud Architects in 2025 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nCloud engineering\nDevops \nCloud Soluton designer\nAWS Certified engineer\nCloudformation\nAWS Cognito\nKubernetes\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "duration" => 297, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", "id" => "xIk0_uFV-rU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xIk0_uFV-rU", "playlist_index" => 13, "timestamp" => 1753541434, "title" => "Interview with Cloud Architect in 2025", "upload_date" => "20250726"} 09:33:54.198 [debug] QUERY OK source="sources" db=0.1ms idle=217.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 (?)) [33] 09:33:54.198 [debug] QUERY OK source="sources" db=0.0ms idle=217.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" = ?) [33] 09:33:54.199 [debug] QUERY OK source="media_items" db=0.2ms idle=217.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-26 14:50:34Z], 33] 09:33:54.200 [debug] QUERY OK source="media_items" db=0.7ms idle=218.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Cloud Architects\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Cloud Architects in 2025 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nCloud engineering\nDevops \nCloud Soluton designer\nAWS Certified engineer\nCloudformation\nAWS Cognito\nKubernetes\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Cloud Architect in 2025", "d379c1ab-4298-425c-9905-6c23ea897289", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, false, false, 33, [], 98, ~U[2025-07-26 14:50:34Z], ~U[2026-04-30 14:33:54Z], ~U[2026-04-30 14:33:54Z], "Cloud Architects\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Cloud Architects in 2025 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nCloud engineering\nDevops \nCloud Soluton designer\nAWS Certified engineer\nCloudformation\nAWS Cognito\nKubernetes\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Cloud Architect in 2025", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, 33, ~U[2025-07-26 14:50:34Z]] 09:33:54.200 [debug] QUERY OK source="sources" db=0.2ms idle=46.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" = ?) [33] 09:33:54.200 [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] 09:33:54.201 [debug] QUERY OK source="media_items" db=0.1ms 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 [794439] 09:33:54.201 [debug] Current batch of media processed. Will check again in 1000ms 09:33:55.202 [debug] Current batch of media processed. Will check again in 1000ms 09:33:56.203 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Interview with a Boomer CTO in 2023\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Boomer CTO in 2023 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nDevops \nKubernetes\nCloud engineering\nPrometheus\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "duration" => 378, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", "id" => "rXPpkzdS-q4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rXPpkzdS-q4", "playlist_index" => 14, "timestamp" => 1753197703, "title" => "Interview with Senior DevOps engineer 2025", "upload_date" => "20250722"} 09:33:56.203 [debug] QUERY OK source="sources" db=0.1ms idle=222.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 (?)) [33] 09:33:56.203 [debug] QUERY OK source="sources" db=0.0ms idle=222.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" = ?) [33] 09:33:56.204 [debug] QUERY OK source="media_items" db=0.1ms idle=222.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-22 15:21:43Z], 33] 09:33:56.205 [debug] QUERY OK source="media_items" db=0.9ms idle=223.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a Boomer CTO in 2023\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Boomer CTO in 2023 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nDevops \nKubernetes\nCloud engineering\nPrometheus\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Senior DevOps engineer 2025", "76947fc0-482d-4d3d-981e-774ef967da33", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", 14, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, false, false, 33, [], 98, ~U[2025-07-22 15:21:43Z], ~U[2026-04-30 14:33:56Z], ~U[2026-04-30 14:33:56Z], "Interview with a Boomer CTO in 2023\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Boomer CTO in 2023 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nDevops \nKubernetes\nCloud engineering\nPrometheus\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Senior DevOps engineer 2025", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, 33, ~U[2025-07-22 15:21:43Z]] 09:33:56.205 [debug] QUERY OK source="sources" db=0.2ms idle=50.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" = ?) [33] 09:33:56.206 [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] 09:33:56.206 [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 [774887] 09:33:56.206 [debug] Current batch of media processed. Will check again in 1000ms 09:33:57.207 [debug] Current batch of media processed. Will check again in 1000ms 09:33:58.208 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "0.1x engineer [Office edition]\nhttps://linkgraph.net/stack/0.1xengineer\n\nThnks republic.com for the hq\n\nDay in the Life of a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nOffice humor\nJavascript beginner\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nJs memes\njs jokes\njquery \ndocker\nkubernetes\n\n#programming\n#jokes\n#officehumor", "duration" => 522, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", "id" => "i7aQig-wjYA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i7aQig-wjYA", "playlist_index" => 15, "timestamp" => 1752261350, "title" => "0.1x engineer [Office Edition]", "upload_date" => "20250711"} 09:33:58.208 [debug] QUERY OK source="sources" db=0.1ms idle=227.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 (?)) [33] 09:33:58.208 [debug] QUERY OK source="sources" db=0.0ms idle=227.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" = ?) [33] 09:33:58.209 [debug] QUERY OK source="media_items" db=0.1ms idle=227.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-11 19:15:50Z], 33] 09:33:58.209 [debug] QUERY OK source="media_items" db=0.5ms idle=228.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["0.1x engineer [Office edition]\nhttps://linkgraph.net/stack/0.1xengineer\n\nThnks republic.com for the hq\n\nDay in the Life of a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nOffice humor\nJavascript beginner\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nJs memes\njs jokes\njquery \ndocker\nkubernetes\n\n#programming\n#jokes\n#officehumor", "0.1x engineer [Office Edition]", "9fd3171d-3591-4539-940d-f9eeeb3fbf81", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", 15, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, false, false, 33, [], 98, ~U[2025-07-11 19:15:50Z], ~U[2026-04-30 14:33:58Z], ~U[2026-04-30 14:33:58Z], "0.1x engineer [Office edition]\nhttps://linkgraph.net/stack/0.1xengineer\n\nThnks republic.com for the hq\n\nDay in the Life of a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nOffice humor\nJavascript beginner\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nJs memes\njs jokes\njquery \ndocker\nkubernetes\n\n#programming\n#jokes\n#officehumor", "0.1x engineer [Office Edition]", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, 33, ~U[2025-07-11 19:15:50Z]] 09:33:58.210 [debug] QUERY OK source="sources" db=0.1ms idle=51.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" = ?) [33] 09:33:58.210 [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] 09:33:58.210 [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 [722681] 09:33:58.211 [debug] Current batch of media processed. Will check again in 1000ms 09:33:59.212 [debug] Current batch of media processed. Will check again in 1000ms 09:34:00.213 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "0.1x engineer\nhttps://linkgraph.net/stack/0.1xengineer\n\nInterview with a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nJavascript beginner\nCoding Bootcamps\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nHTMX\nJs memes\ntypescript\njs jokes\njquery \ndocker\n\n\n#programming\n#jokes\n#javascript", "duration" => 286, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", "id" => "hwG89HH0VcM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hwG89HH0VcM", "playlist_index" => 16, "timestamp" => 1750177210, "title" => "Interview with 0.1x engineer [Home Edition]", "upload_date" => "20250617"} 09:34:00.214 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=232.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 (?)) [33] 09:34:00.214 [debug] QUERY OK source="sources" db=0.1ms idle=233.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" = ?) [33] 09:34:00.214 [debug] QUERY OK source="media_items" db=0.3ms idle=233.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 16:20:10Z], 33] 09:34:00.215 [debug] QUERY OK source="media_items" db=0.6ms idle=233.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["0.1x engineer\nhttps://linkgraph.net/stack/0.1xengineer\n\nInterview with a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nJavascript beginner\nCoding Bootcamps\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nHTMX\nJs memes\ntypescript\njs jokes\njquery \ndocker\n\n\n#programming\n#jokes\n#javascript", "Interview with 0.1x engineer [Home Edition]", "0a174e34-9c5f-4964-9521-f0153e0e55ab", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", 16, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, false, false, 33, [], 98, ~U[2025-06-17 16:20:10Z], ~U[2026-04-30 14:34:00Z], ~U[2026-04-30 14:34:00Z], "0.1x engineer\nhttps://linkgraph.net/stack/0.1xengineer\n\nInterview with a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nJavascript beginner\nCoding Bootcamps\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nHTMX\nJs memes\ntypescript\njs jokes\njquery \ndocker\n\n\n#programming\n#jokes\n#javascript", "Interview with 0.1x engineer [Home Edition]", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, 33, ~U[2025-06-17 16:20:10Z]] 09:34:00.215 [debug] QUERY OK source="sources" db=0.1ms idle=54.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" = ?) [33] 09:34:00.216 [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] 09:34:00.216 [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 [597386] 09:34:00.216 [debug] Current batch of media processed. Will check again in 1000ms 09:34:00.873 [info] {"source":"oban","duration":157,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:34:01.217 [debug] Current batch of media processed. Will check again in 1000ms 09:34:01.897 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCi8C7TNs2ohrc6hnRQ5Sn2w --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/fb/6c/fb6cad06164879d97d9222390c02eb50925c8a4d458680e71a00b063f55cf907.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ad/29/ad29816180f24c0091eae240efff9966f69719f00065efa5fb7cfdcdea6267a4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:34:01.897 [debug] Gracefully stopping file follower 09:34:01.898 [debug] QUERY OK source="sources" db=0.2ms idle=1681.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 (?)) [33] 09:34:01.898 [debug] QUERY OK source="sources" db=0.1ms idle=1682.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" = ?) [33] 09:34:01.898 [debug] QUERY OK source="media_items" db=0.2ms idle=1681.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:58:21Z], 33] 09:34:01.899 [debug] QUERY OK source="media_items" db=0.7ms idle=1025.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I built Taskrabbit for Witches, researched business partners, got customers, interviewed a YC Partner.\nhttps://supabase.link/yx7IfXj \ncurserapp.com is your one stop solution for booking in spells.\n\nsponsored by Supabase!\nEP2 coming.\nco-producer: Ajay Kishore.\n\nvibe coding\nreplit\nsupabase\nprogramming humor\ntech industry\nbuilding products\nselling apps\nMRR\nuser growth\nbuilding products has never been easier\nAI tools\nAI coding", "I built Taskrabbit for Witches ($100K MRR - Projected)", "e2908170-5b30-4852-9306-3a73ae56b5bf", "O7joqcfy-eU", 598, false, "https://www.youtube.com/watch?v=O7joqcfy-eU", 1, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e042800_I built Taskrabbit for Witches ($100K MRR - Projected).mp4", false, false, false, 33, [], 98, ~U[2026-04-28 13:58:21Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "I built Taskrabbit for Witches, researched business partners, got customers, interviewed a YC Partner.\nhttps://supabase.link/yx7IfXj \ncurserapp.com is your one stop solution for booking in spells.\n\nsponsored by Supabase!\nEP2 coming.\nco-producer: Ajay Kishore.\n\nvibe coding\nreplit\nsupabase\nprogramming humor\ntech industry\nbuilding products\nselling apps\nMRR\nuser growth\nbuilding products has never been easier\nAI tools\nAI coding", "I built Taskrabbit for Witches ($100K MRR - Projected)", "O7joqcfy-eU", 598, false, "https://www.youtube.com/watch?v=O7joqcfy-eU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e042800_I built Taskrabbit for Witches ($100K MRR - Projected).mp4", false, 33, ~U[2026-04-28 13:58:21Z]] 09:34:01.900 [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" = ?) [33] 09:34:01.900 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 14:58:21Z], 33] 09:34:01.901 [debug] QUERY OK source="media_items" db=0.5ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a paranoid news checker.\n\nInterview with a paranoid news checker with Jackson Jineer aired on The News© 2026.\n\n\nPolymarket\niran\nus news\nnews commentary\nprediction markets\nShorting Futures\n\n#programming #humor #newscommentary", "I am monitoring the situation.", "c95f3454-bb72-4942-b9e4-859b8d7a9096", "2IsR06zf8nQ", 173, false, "https://www.youtube.com/watch?v=2IsR06zf8nQ", 2, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e041500_I am monitoring the situation..mp4", false, false, false, 33, [], 98, ~U[2026-04-15 14:58:21Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Interview with a paranoid news checker.\n\nInterview with a paranoid news checker with Jackson Jineer aired on The News© 2026.\n\n\nPolymarket\niran\nus news\nnews commentary\nprediction markets\nShorting Futures\n\n#programming #humor #newscommentary", "I am monitoring the situation.", "2IsR06zf8nQ", 173, false, "https://www.youtube.com/watch?v=2IsR06zf8nQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e041500_I am monitoring the situation..mp4", false, 33, ~U[2026-04-15 14:58:21Z]] 09:34:01.901 [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" = ?) [33] 09:34:01.901 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 14:16:40Z], 33] 09:34:01.902 [debug] QUERY OK source="media_items" db=0.6ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["AI CEOs.\n\nInterview with a AI CEO vs AI Engineer with Josh Doe and Jackson Jineer - aired on © The AI.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nCloud Computing\nAI news\nOracle ceo news\nAI Layoffs\nTech industry\nAI progress\nWork humor\nManager talk\nGPT5\nsoftware development\n\n #software #company #corporatehumor", "AI CEO vs Engineer (2026).", "501e7ad9-2915-4c27-a015-98b028e14968", "WAUnmQt2Z7Y", 288, false, "https://www.youtube.com/watch?v=WAUnmQt2Z7Y", 3, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e040100_AI CEO vs Engineer (2026)..mp4", false, false, false, 33, [], 98, ~U[2026-04-01 14:16:40Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "AI CEOs.\n\nInterview with a AI CEO vs AI Engineer with Josh Doe and Jackson Jineer - aired on © The AI.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nCloud Computing\nAI news\nOracle ceo news\nAI Layoffs\nTech industry\nAI progress\nWork humor\nManager talk\nGPT5\nsoftware development\n\n #software #company #corporatehumor", "AI CEO vs Engineer (2026).", "WAUnmQt2Z7Y", 288, false, "https://www.youtube.com/watch?v=WAUnmQt2Z7Y", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e040100_AI CEO vs Engineer (2026)..mp4", false, 33, ~U[2026-04-01 14:16:40Z]] 09:34:01.902 [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" = ?) [33] 09:34:01.903 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 17:04:48Z], 33] 09:34:01.904 [debug] QUERY OK source="media_items" db=1.4ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The CEO.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nAI news\nAI progress\nWork humor\nManager talk\nGPT5\nMultimodal\nsoftware development\n\n #software #company #corporatehumor", "Interview with a 'sweating' AI CEO (2026)", "42089e4b-bef2-46a6-ba8b-56cf2198ae22", "tnYaExb5JvM", 246, false, "https://www.youtube.com/watch?v=tnYaExb5JvM", 4, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e031800_Interview with a 'sweating' AI CEO (2026).mp4", false, false, false, 33, [], 98, ~U[2026-03-18 17:04:48Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The CEO.\n\n\nProgrammer humor \nprogrammer jokes\nAI humor\nNext gen AI\nAI news\nAI progress\nWork humor\nManager talk\nGPT5\nMultimodal\nsoftware development\n\n #software #company #corporatehumor", "Interview with a 'sweating' AI CEO (2026)", "tnYaExb5JvM", 246, false, "https://www.youtube.com/watch?v=tnYaExb5JvM", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e031800_Interview with a 'sweating' AI CEO (2026).mp4", false, 33, ~U[2026-03-18 17:04:48Z]] 09:34:01.905 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 09:34:01.905 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-04 14:21:30Z], 33] 09:34:01.906 [debug] QUERY OK source="media_items" db=0.4ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Shipping a button in the age of cloud, vibe coding, JS frameworks.\n\nT3 \nT4\n\n#programming \n#javascript\n#humor", "Shipping a button in 2026…", "0742c3f4-85d3-4219-aea0-628e10845348", "xE9W9Ghe4Jk", 578, false, "https://www.youtube.com/watch?v=xE9W9Ghe4Jk", 5, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e030400_Shipping a button in 2026….mp4", false, false, false, 33, [], 98, ~U[2026-03-04 14:21:30Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Shipping a button in the age of cloud, vibe coding, JS frameworks.\n\nT3 \nT4\n\n#programming \n#javascript\n#humor", "Shipping a button in 2026…", "xE9W9Ghe4Jk", 578, false, "https://www.youtube.com/watch?v=xE9W9Ghe4Jk", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e030400_Shipping a button in 2026….mp4", false, 33, ~U[2026-03-04 14:21:30Z]] 09:34:01.906 [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" = ?) [33] 09:34:01.906 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 17:51:37Z], 33] 09:34:01.907 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Just use a VPS bro…\n\nInterview with a VPS bro with Jack Borrough - aired on © The VPS.\nMusic: Paramore - Emergency\n\nOpenclaw installation guide\nLinux server installation guide\nOpenClaw VPS setup\nNext-gen ai\nAnthropic Claude \nLinux server setup\nProgramming humor\nProgrammer memes\nSystems", "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "eb055ce6-e951-47f4-b66b-d73fd76d6cd3", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", 6, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e020500_Interview with ‘Just use a VPS’ bro (OpenClaw version)..mp4", false, false, false, 33, [], 98, ~U[2026-02-05 17:51:37Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Just use a VPS bro…\n\nInterview with a VPS bro with Jack Borrough - aired on © The VPS.\nMusic: Paramore - Emergency\n\nOpenclaw installation guide\nLinux server installation guide\nOpenClaw VPS setup\nNext-gen ai\nAnthropic Claude \nLinux server setup\nProgramming humor\nProgrammer memes\nSystems", "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2026/s2026e020500_Interview with ‘Just use a VPS’ bro (OpenClaw version)..mp4", false, 33, ~U[2026-02-05 17:51:37Z]] 09:34:01.907 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 09:34:01.907 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 16:37:46Z], 33] 09:34:01.908 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a Santa Claus\n\nInterview with a Santa Clause in 2025 with Santa Wallis - aired on © The Christmas.\n\nProgrammer humor\nProgramming memes\nJavascript humor\nReact hydration\nDevops \nGrafana\nCloud engineering\nPrometheus\nObservability\nDocker Containers\nK8s", "Santa Claus on delivering 99% Uptime", "b0ed1158-c576-4f93-a67a-2be0c29f7e6e", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", 7, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, false, false, 33, [], 98, ~U[2025-12-23 16:37:46Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Interview with a Santa Claus\n\nInterview with a Santa Clause in 2025 with Santa Wallis - aired on © The Christmas.\n\nProgrammer humor\nProgramming memes\nJavascript humor\nReact hydration\nDevops \nGrafana\nCloud engineering\nPrometheus\nObservability\nDocker Containers\nK8s", "Santa Claus on delivering 99% Uptime", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, 33, ~U[2025-12-23 16:37:46Z]] 09:34:01.909 [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" = ?) [33] 09:34:01.909 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-19 15:35:46Z], 33] 09:34:01.910 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Look at all these NPCs 2025.\nNot an ad.\n10x engineer - Midlife crisis.\nInspired & Music by @o@omalleyrocklugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "NPCs…", "d5e7daf4-f8ec-4695-aeee-ff5ea4b2a83c", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", 8, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_NPCs….mp4", false, false, false, 33, [], 98, ~U[2025-11-19 15:35:46Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Look at all these NPCs 2025.\nNot an ad.\n10x engineer - Midlife crisis.\nInspired & Music by @o@omalleyrocklugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "NPCs…", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_NPCs….mp4", false, 33, ~U[2025-11-19 15:35:46Z]] 09:34:01.910 [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" = ?) [33] 09:34:01.910 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-12 15:07:04Z], 33] 09:34:01.927 [debug] QUERY OK source="media_items" db=16.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents at Corporate.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nSAFe\nManager humor\nWork humor\nPM Humor\nConsulting work\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\nbig company\n\n #software #company #corporatehumor", "Interview with Dying Company's Vice President.", "36606435-e0f2-4c4b-8d98-73413d43e928", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", 9, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's Vice President..mp4", false, false, false, 33, [], 98, ~U[2025-11-12 15:07:04Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Vice Presidents at Corporate.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nSAFe\nManager humor\nWork humor\nPM Humor\nConsulting work\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\nbig company\n\n #software #company #corporatehumor", "Interview with Dying Company's Vice President.", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's Vice President..mp4", false, 33, ~U[2025-11-12 15:07:04Z]] 09:34:01.927 [debug] QUERY OK source="sources" db=0.2ms idle=18.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" = ?) [33] 09:34:01.928 [debug] QUERY OK source="media_items" db=0.2ms idle=17.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-05 15:58:01Z], 33] 09:34:01.932 [debug] QUERY OK source="media_items" db=4.3ms idle=18.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nProduct Owner\nManager humor\nWork humor\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\n\n #software #company #corporatehumor", "Interview with Dying Company's Manager.", "fbdbd7eb-7750-44c3-9f36-e43672afc8ac", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", 10, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Interview with Dying Company's Manager..mp4", false, false, false, 33, [], 98, ~U[2025-11-05 15:58:01Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Vice Presidents.\n\nInterview with a VP with Josh Doe - aired on © The Vice President.\n\nSponsored by Vanta. Compliance for builders. Get started at Vanta.com.\n\nProgrammer humor \nprogrammer jokes\nProduct Owner\nManager humor\nWork humor\nManager talk\nCorporate Humor\nExecutive Humor\nsoftware development\n\n #software #company #corporatehumor", "Interview with Dying Company's Manager.", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Interview with Dying Company's Manager..mp4", false, 33, ~U[2025-11-05 15:58:01Z]] 09:34:01.933 [debug] QUERY OK source="sources" db=0.2ms idle=22.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" = ?) [33] 09:34:01.933 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-28 16:27:42Z], 33] 09:34:01.934 [debug] QUERY OK source="media_items" db=0.5ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Episode 3 - \"Sunglasses\"\n\n\nProgrammer humor\nProgramming jokes\nProgramming memes\nAI programming humor\ncracked swe\nLinux\ncoding humor\n10x engineer\nHacker lifestyle\nhackers movie\njavascript humor\nrust programming\n\n#programming\n#jokes\n#humor", "Next-door 10x engineer (Part 3)", "3762f7f0-e7d6-41af-aa8b-e21003250894", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", 11, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, false, false, 33, [], 98, ~U[2025-10-28 16:27:42Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Episode 3 - \"Sunglasses\"\n\n\nProgrammer humor\nProgramming jokes\nProgramming memes\nAI programming humor\ncracked swe\nLinux\ncoding humor\n10x engineer\nHacker lifestyle\nhackers movie\njavascript humor\nrust programming\n\n#programming\n#jokes\n#humor", "Next-door 10x engineer (Part 3)", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, 33, ~U[2025-10-28 16:27:42Z]] 09:34:01.934 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 09:34:01.935 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 16:35:18Z], 33] 09:34:01.935 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Professional Tourist\n\nshowing you all the tools you need for professional tourism life linkgraph.net\n\nTripadvisor\ngoogle earth\nprogrammer traveling\ntravel life\nTravel Guide Comedy\nTravel comedy\nTravell guide comedy\nTraveller\nTravel Tools\nBest Hostel Hacks\nsunburn Tracker\nPicture Shadow tracker", "10x Tourist", "c5131e4e-b545-41c8-9016-37e1bfaa2abd", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", 12, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, false, false, 33, [], 98, ~U[2025-08-28 16:35:18Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Professional Tourist\n\nshowing you all the tools you need for professional tourism life linkgraph.net\n\nTripadvisor\ngoogle earth\nprogrammer traveling\ntravel life\nTravel Guide Comedy\nTravel comedy\nTravell guide comedy\nTraveller\nTravel Tools\nBest Hostel Hacks\nsunburn Tracker\nPicture Shadow tracker", "10x Tourist", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, 33, ~U[2025-08-28 16:35:18Z]] 09:34:01.936 [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" = ?) [33] 09:34:01.936 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-26 14:50:34Z], 33] 09:34:01.937 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Cloud Architects\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Cloud Architects in 2025 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nCloud engineering\nDevops \nCloud Soluton designer\nAWS Certified engineer\nCloudformation\nAWS Cognito\nKubernetes\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Cloud Architect in 2025", "cfb30870-036c-4463-85c2-da17712d9486", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, false, false, 33, [], 98, ~U[2025-07-26 14:50:34Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Cloud Architects\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Cloud Architects in 2025 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nCloud engineering\nDevops \nCloud Soluton designer\nAWS Certified engineer\nCloudformation\nAWS Cognito\nKubernetes\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Cloud Architect in 2025", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, 33, ~U[2025-07-26 14:50:34Z]] 09:34:01.937 [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" = ?) [33] 09:34:01.937 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-22 15:21:43Z], 33] 09:34:01.938 [debug] QUERY OK source="media_items" db=0.5ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Interview with a Boomer CTO in 2023\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Boomer CTO in 2023 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nDevops \nKubernetes\nCloud engineering\nPrometheus\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Senior DevOps engineer 2025", "1b833409-11ca-4970-8e23-7cd6bd5cadfc", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", 14, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, false, false, 33, [], 98, ~U[2025-07-22 15:21:43Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Interview with a Boomer CTO in 2023\nhttps://linkgraph.net\nAll lines soon printed on merch... https://posix.store/\nhttps://www.patreon.com/ProgrammersAreAlsoHuman\n\nInterview with a Boomer CTO in 2023 with Azuros Cloudapi - aired on © The CTO.\n\nScripts inspired by X account \"Devops Borat\"\nThanks to Grafana Principal engineers for helping with the ideas.\n\nProgrammer humor\nDevops \nKubernetes\nCloud engineering\nPrometheus\nObservability\nDocker\nK8s\n\n\n\n#humor\n#programming \n#devops", "Interview with Senior DevOps engineer 2025", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, 33, ~U[2025-07-22 15:21:43Z]] 09:34:01.938 [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" = ?) [33] 09:34:01.939 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-11 19:15:50Z], 33] 09:34:01.939 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["0.1x engineer [Office edition]\nhttps://linkgraph.net/stack/0.1xengineer\n\nThnks republic.com for the hq\n\nDay in the Life of a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nOffice humor\nJavascript beginner\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nJs memes\njs jokes\njquery \ndocker\nkubernetes\n\n#programming\n#jokes\n#officehumor", "0.1x engineer [Office Edition]", "c6aa3dd3-bc8d-45f4-885b-00c74213dff6", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", 15, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, false, false, 33, [], 98, ~U[2025-07-11 19:15:50Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "0.1x engineer [Office edition]\nhttps://linkgraph.net/stack/0.1xengineer\n\nThnks republic.com for the hq\n\nDay in the Life of a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nOffice humor\nJavascript beginner\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nJs memes\njs jokes\njquery \ndocker\nkubernetes\n\n#programming\n#jokes\n#officehumor", "0.1x engineer [Office Edition]", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, 33, ~U[2025-07-11 19:15:50Z]] 09:34:01.940 [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" = ?) [33] 09:34:01.940 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 16:20:10Z], 33] 09:34:01.941 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["0.1x engineer\nhttps://linkgraph.net/stack/0.1xengineer\n\nInterview with a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nJavascript beginner\nCoding Bootcamps\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nHTMX\nJs memes\ntypescript\njs jokes\njquery \ndocker\n\n\n#programming\n#jokes\n#javascript", "Interview with 0.1x engineer [Home Edition]", "7dbfa885-69e1-49c6-a7b7-e73fc1d8a7a0", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", 16, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, false, false, 33, [], 98, ~U[2025-06-17 16:20:10Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "0.1x engineer\nhttps://linkgraph.net/stack/0.1xengineer\n\nInterview with a 0.1x engineer with Kai Lentit - aired on © The 0.1x engineer.\n\nJavascript beginner\nCoding Bootcamps\nAI Coder\nMicroservices\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\nJavascript\nHTMX\nJs memes\ntypescript\njs jokes\njquery \ndocker\n\n\n#programming\n#jokes\n#javascript", "Interview with 0.1x engineer [Home Edition]", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, 33, ~U[2025-06-17 16:20:10Z]] 09:34:01.941 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 09:34:01.941 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-15 15:36:37Z], 33] 09:34:01.942 [debug] QUERY OK source="media_items" db=1.0ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Vibe Coding / AI Coding - Amjad Masad\n\nInterview with Replit Cofounder and CEO Amjad Masad aired on © Who Is Technology 2025.\n\nTech CEO Interview\nAI coding\nprompt engineering\nreplit\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\n\n\n#vibecoding \n#jokes\n#programming", "Interview with King of AI Coding (Replit CEO - $1.2B)", "10df47b3-4ec2-4d2d-b17c-1b5da4f09068", "r45-w5MKOlE", 572, false, "https://www.youtube.com/watch?v=r45-w5MKOlE", 17, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, false, false, 33, [], 98, ~U[2025-04-15 15:36:37Z], ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], "Vibe Coding / AI Coding - Amjad Masad\n\nInterview with Replit Cofounder and CEO Amjad Masad aired on © Who Is Technology 2025.\n\nTech CEO Interview\nAI coding\nprompt engineering\nreplit\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\n\n\n#vibecoding \n#jokes\n#programming", "Interview with King of AI Coding (Replit CEO - $1.2B)", "r45-w5MKOlE", 572, false, "https://www.youtube.com/watch?v=r45-w5MKOlE", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, 33, ~U[2025-04-15 15:36:37Z]] 09:34:01.943 [debug] QUERY OK source="sources" db=0.1ms idle=2.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z], 33] 09:34:01.943 [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 ((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")))) [33] 09:34:01.943 [debug] QUERY OK source="media_items" db=0.3ms idle=2.3ms 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")))) [33] 09:34:01.944 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 09:34:01.945 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300683, 33, ~U[2026-04-30 14:34:01Z], ~U[2026-04-30 14:34:01Z]] 09:34:01.945 [info] {"args":{"id":33},"id":300424,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":34819388,"event":"job:stop","queue_time":594012,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:34:06.454 [info] {"source":"oban","duration":3321,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:34:36.459 [info] {"source":"oban","duration":4217,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:00.874 [info] {"source":"oban","duration":156,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:35:06.463 [info] {"source":"oban","duration":3238,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:36.466 [info] {"source":"oban","duration":2275,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:00.875 [info] {"source":"oban","duration":181,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:36:06.469 [info] {"source":"oban","duration":2283,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:20.356 [info] {"args":{"id":30},"id":300638,"meta":{},"system_time":1777559780356894201,"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"]} 09:36:20.357 [debug] QUERY OK source="sources" db=0.1ms idle=375.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" = ?) [30] 09:36:20.357 [debug] QUERY OK source="settings" db=0.2ms idle=376.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 [] 09:36:20.362 [debug] QUERY OK source="media_items" db=4.2ms idle=376.6ms 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")))) [30] 09:36:20.362 [debug] QUERY OK source="media_items" db=0.3ms idle=11.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 09:36:20.362 [debug] QUERY OK source="media_profiles" db=0.0ms idle=5.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] 09:36:20.363 [debug] QUERY OK source="settings" db=0.0ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:36:20.363 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:36:20.367 [debug] QUERY OK source="media_items" db=3.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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 09:36:20.368 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:36:20.368 [debug] Current batch of media processed. Will check again in 1000ms 09:36:20.368 [debug] QUERY OK source="settings" db=0.0ms idle=6.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 [] 09:36:20.368 [debug] QUERY OK source="settings" db=0.0ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:36:20.369 [debug] QUERY OK source="settings" db=0.0ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:36:20.369 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/77/4f/774fe8e3f8150e5e18d740afcd02b3e686e72f98fe25a0796895ad3482918cc8.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ec/dc/ecdcdc60c0faaa693f6e16f288dcf7a22e97d037301cea094c19f35fd4087108.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:36:21.369 [debug] Current batch of media processed. Will check again in 1000ms 09:36:22.370 [debug] Current batch of media processed. Will check again in 1000ms 09:36:23.371 [debug] Current batch of media processed. Will check again in 1000ms 09:36:24.372 [debug] Current batch of media processed. Will check again in 1000ms 09:36:25.373 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1328, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", "id" => "npKb9UAxDxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npKb9UAxDxQ", "playlist_index" => 1, "timestamp" => 1777483828, "title" => "The Future Of KDE Plasma Looks Incredible", "upload_date" => "20260429"} 09:36:25.373 [debug] QUERY OK source="sources" db=0.3ms idle=1392.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 (?)) [30] 09:36:25.374 [debug] QUERY OK source="sources" db=0.1ms idle=1392.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" = ?) [30] 09:36:25.378 [debug] QUERY OK source="media_items" db=4.4ms idle=1393.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 09:36:25.380 [debug] QUERY OK source="media_items" db=0.9ms idle=1023.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "d12b754e-6765-4340-90e8-27fa9163c102", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 14:36:25Z], ~U[2026-04-30 14:36:25Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 09:36:25.380 [debug] QUERY OK source="sources" db=0.1ms idle=23.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" = ?) [30] 09:36:25.380 [debug] QUERY OK source="media_profiles" db=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] 09:36:25.380 [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 [2838902] 09:36:25.381 [debug] Current batch of media processed. Will check again in 1000ms 09:36:26.382 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1567, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", "id" => "lIK4hKCXZHs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lIK4hKCXZHs", "playlist_index" => 2, "timestamp" => 1777397422, "title" => "Valve has Cooked Up Something Amazing", "upload_date" => "20260428"} 09:36:26.383 [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" IN (?)) [30] 09:36:26.383 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 09:36:26.388 [debug] QUERY OK source="media_items" db=4.2ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 09:36:26.389 [debug] QUERY OK source="media_items" db=1.2ms idle=1007.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "d42f5d12-9871-4f6d-8e4b-b62ac5544e0a", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 14:36:26Z], ~U[2026-04-30 14:36:26Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 09:36:26.390 [debug] QUERY OK source="sources" db=0.1ms idle=31.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" = ?) [30] 09:36:26.390 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 09:36:26.391 [debug] QUERY OK source="media_items" db=0.1ms 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 [2831238] 09:36:26.391 [debug] Current batch of media processed. Will check again in 1000ms 09:36:27.392 [debug] Current batch of media processed. Will check again in 1000ms 09:36:28.393 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1123, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", "id" => "tLKOH-CUWyI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tLKOH-CUWyI", "playlist_index" => 3, "timestamp" => 1777311030, "title" => "Protect Your Linux Desktop From Malicious USB Devices", "upload_date" => "20260427"} 09:36:28.393 [debug] QUERY OK source="sources" db=0.2ms idle=412.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 (?)) [30] 09:36:28.394 [debug] QUERY OK source="sources" db=0.1ms idle=413.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" = ?) [30] 09:36:28.398 [debug] QUERY OK source="media_items" db=4.3ms idle=413.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 09:36:28.399 [debug] QUERY OK source="media_items" db=0.9ms idle=417.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "3f6b911f-0d60-4c50-b02b-34ff59534650", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 14:36:28Z], ~U[2026-04-30 14:36:28Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 09:36:28.400 [debug] QUERY OK source="sources" db=0.1ms idle=37.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" = ?) [30] 09:36:28.400 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:28.401 [debug] QUERY OK source="media_items" db=0.1ms 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 [2823571] 09:36:28.401 [debug] Current batch of media processed. Will check again in 1000ms 09:36:29.401 [debug] Current batch of media processed. Will check again in 1000ms 09:36:30.403 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1104, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", "id" => "989vCMg3Qv8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=989vCMg3Qv8", "playlist_index" => 4, "timestamp" => 1777224603, "title" => "One Maintainer Is All It Takes To Break A Project", "upload_date" => "20260426"} 09:36:30.404 [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" IN (?)) [30] 09:36:30.404 [debug] QUERY OK source="sources" db=0.1ms idle=423.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" = ?) [30] 09:36:30.408 [debug] QUERY OK source="media_items" db=4.3ms idle=423.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 09:36:30.410 [debug] QUERY OK source="media_items" db=1.0ms idle=428.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "a6667d5b-0494-4dc2-9f97-f640889ca2d1", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 14:36:30Z], ~U[2026-04-30 14:36:30Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 09:36:30.410 [debug] QUERY OK source="sources" db=0.2ms idle=44.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" = ?) [30] 09:36:30.411 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:30.411 [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 [2816002] 09:36:30.411 [debug] Current batch of media processed. Will check again in 1000ms 09:36:31.412 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 968, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", "id" => "kvMBenjrbOA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kvMBenjrbOA", "playlist_index" => 5, "timestamp" => 1777138210, "title" => "There's No Way This Web Extension Is Real", "upload_date" => "20260425"} 09:36:31.412 [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 (?)) [30] 09:36:31.412 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 09:36:31.417 [debug] QUERY OK source="media_items" db=4.3ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 09:36:31.419 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "f1976b6c-ca62-4d25-969e-a358ed40857a", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 14:36:31Z], ~U[2026-04-30 14:36:31Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 09:36:31.419 [debug] QUERY OK source="sources" db=0.1ms idle=51.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" = ?) [30] 09:36:31.419 [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] 09:36:31.419 [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 [2808334] 09:36:31.420 [debug] Current batch of media processed. Will check again in 1000ms 09:36:32.421 [debug] Current batch of media processed. Will check again in 1000ms 09:36:33.422 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 926, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", "id" => "I4sP8K8c6yc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I4sP8K8c6yc", "playlist_index" => 6, "timestamp" => 1776965404, "title" => "Oxygen Squared The KDE Design We Never Had", "upload_date" => "20260423"} 09:36:33.422 [debug] QUERY OK source="sources" db=0.3ms idle=441.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 (?)) [30] 09:36:33.423 [debug] QUERY OK source="sources" db=0.0ms idle=442.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" = ?) [30] 09:36:33.428 [debug] QUERY OK source="media_items" db=4.9ms idle=442.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 09:36:33.429 [debug] QUERY OK source="media_items" db=0.9ms idle=447.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "70411df7-edc6-4d0f-a81b-7e544f2654c8", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 14:36:33Z], ~U[2026-04-30 14:36:33Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 09:36:33.430 [debug] QUERY OK source="sources" db=0.1ms idle=57.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" = ?) [30] 09:36:33.430 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:33.430 [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 [2793046] 09:36:33.430 [debug] Current batch of media processed. Will check again in 1000ms 09:36:34.431 [debug] Current batch of media processed. Will check again in 1000ms 09:36:35.432 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1136, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", "id" => "7YPnh6dlyQQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "playlist_index" => 7, "timestamp" => 1776879004, "title" => "IPv8 Changes Everything We Know About IP", "upload_date" => "20260422"} 09:36:35.432 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=451.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 (?)) [30] 09:36:35.433 [debug] QUERY OK source="sources" db=0.0ms idle=452.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" = ?) [30] 09:36:35.437 [debug] QUERY OK source="media_items" db=4.3ms idle=452.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 09:36:35.439 [debug] QUERY OK source="media_items" db=1.1ms idle=456.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "c66a9166-ea07-4867-b1e7-2551e06745dd", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 14:36:35Z], ~U[2026-04-30 14:36:35Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 09:36:35.439 [debug] QUERY OK source="sources" db=0.1ms idle=63.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" = ?) [30] 09:36:35.439 [debug] QUERY OK source="media_profiles" db=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] 09:36:35.440 [debug] QUERY OK source="media_items" db=0.2ms 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 [2785377] 09:36:35.440 [debug] Current batch of media processed. Will check again in 1000ms 09:36:36.441 [debug] Current batch of media processed. Will check again in 1000ms 09:36:36.473 [info] {"source":"oban","duration":3308,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:37.442 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1109, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", "id" => "a4BxvWs9PGE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=a4BxvWs9PGE", "playlist_index" => 8, "timestamp" => 1776792600, "title" => "Github Hates That This Repo Still Exists", "upload_date" => "20260421"} 09:36:37.442 [debug] QUERY OK source="sources" db=0.2ms idle=969.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 (?)) [30] 09:36:37.443 [debug] QUERY OK source="sources" db=0.1ms idle=461.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" = ?) [30] 09:36:37.447 [debug] QUERY OK source="media_items" db=4.5ms idle=461.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 09:36:37.451 [debug] QUERY OK source="media_items" db=2.8ms idle=466.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "0a612c28-437c-48fb-a8e0-c62da1116291", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 14:36:37Z], ~U[2026-04-30 14:36:37Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 09:36:37.451 [debug] QUERY OK source="sources" db=0.2ms idle=72.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" = ?) [30] 09:36:37.452 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:36:37.452 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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 [2777718] 09:36:37.452 [debug] Current batch of media processed. Will check again in 1000ms 09:36:38.453 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1304, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", "id" => "83heISygLyA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=83heISygLyA", "playlist_index" => 9, "timestamp" => 1776706202, "title" => "Bizarre World Of Wikipedia Deleting Programming Pages", "upload_date" => "20260420"} 09:36:38.453 [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 (?)) [30] 09:36:38.454 [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" = ?) [30] 09:36:38.458 [debug] QUERY OK source="media_items" db=4.2ms idle=1001.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 09:36:38.459 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "d133a6fb-032c-485e-85f3-e65ea96f755e", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 14:36:38Z], ~U[2026-04-30 14:36:38Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 09:36:38.460 [debug] QUERY OK source="sources" db=0.1ms idle=79.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" = ?) [30] 09:36:38.460 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:36:38.460 [debug] QUERY OK source="media_items" db=0.2ms 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 [2769902] 09:36:38.460 [debug] Current batch of media processed. Will check again in 1000ms 09:36:39.462 [debug] Current batch of media processed. Will check again in 1000ms 09:36:40.463 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1083, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", "id" => "g9TEuezEm9c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g9TEuezEm9c", "playlist_index" => 10, "timestamp" => 1776619810, "title" => "The Linux Kernel Has Ancient Weird Problems", "upload_date" => "20260419"} 09:36:40.463 [debug] QUERY OK source="sources" db=0.2ms idle=482.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 (?)) [30] 09:36:40.464 [debug] QUERY OK source="sources" db=0.2ms idle=482.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" = ?) [30] 09:36:40.468 [debug] QUERY OK source="media_items" db=4.3ms idle=483.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 09:36:40.470 [debug] QUERY OK source="media_items" db=1.0ms idle=487.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "d917730a-77e1-4a5d-86ad-1d794d12eb4a", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 14:36:40Z], ~U[2026-04-30 14:36:40Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 09:36:40.470 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:40.470 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:40.471 [debug] QUERY OK source="media_items" db=0.2ms 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 [2761936] 09:36:40.471 [debug] Current batch of media processed. Will check again in 1000ms 09:36:41.472 [debug] Current batch of media processed. Will check again in 1000ms 09:36:42.473 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1064, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", "id" => "HRsdi7YJ8dI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "playlist_index" => 11, "timestamp" => 1776533409, "title" => "I'm Conflicted About Future Of Open Source", "upload_date" => "20260418"} 09:36:42.474 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=492.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 (?)) [30] 09:36:42.474 [debug] QUERY OK source="sources" db=0.1ms idle=493.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" = ?) [30] 09:36:42.479 [debug] QUERY OK source="media_items" db=4.5ms idle=493.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 09:36:42.480 [debug] QUERY OK source="media_items" db=0.9ms idle=498.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "8e844721-9a81-4742-af8e-510a0e0d06f7", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 14:36:42Z], ~U[2026-04-30 14:36:42Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 09:36:42.481 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:42.481 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:42.481 [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 [2753905] 09:36:42.481 [debug] Current batch of media processed. Will check again in 1000ms 09:36:43.482 [debug] Current batch of media processed. Will check again in 1000ms 09:36:44.483 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1191, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", "id" => "xToLWuGLSNs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xToLWuGLSNs", "playlist_index" => 12, "timestamp" => 1776360613, "title" => "Linux Kernel Would Randomly Explode In The Past", "upload_date" => "20260416"} 09:36:44.484 [debug] QUERY OK source="sources" db=0.2ms idle=502.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 (?)) [30] 09:36:44.484 [debug] QUERY OK source="sources" db=0.1ms idle=503.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" = ?) [30] 09:36:44.489 [debug] QUERY OK source="media_items" db=4.3ms idle=503.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 09:36:44.490 [debug] QUERY OK source="media_items" db=0.9ms idle=508.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "df348dbb-871f-4bc4-8cd4-a841385409d9", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 14:36:44Z], ~U[2026-04-30 14:36:44Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 09:36:44.490 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 09:36:44.491 [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] 09:36:44.491 [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 [2739256] 09:36:44.491 [debug] Current batch of media processed. Will check again in 1000ms 09:36:45.492 [debug] Current batch of media processed. Will check again in 1000ms 09:36:46.493 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1221, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", "id" => "KQu1oRRVAVo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KQu1oRRVAVo", "playlist_index" => 13, "timestamp" => 1776274207, "title" => "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "upload_date" => "20260415"} 09:36:46.493 [debug] QUERY OK source="sources" db=0.2ms idle=512.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 (?)) [30] 09:36:46.493 [debug] QUERY OK source="sources" db=0.0ms idle=512.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" = ?) [30] 09:36:46.499 [debug] QUERY OK source="media_items" db=5.4ms idle=512.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 09:36:46.501 [debug] QUERY OK source="media_items" db=1.1ms idle=518.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "842274a2-d749-4d71-b6fb-e012db11e3c8", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 14:36:46Z], ~U[2026-04-30 14:36:46Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 09:36:46.501 [debug] QUERY OK source="sources" db=0.2ms idle=106.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" = ?) [30] 09:36:46.501 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.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] 09:36:46.502 [debug] QUERY OK source="media_items" db=0.2ms 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 [2737248] 09:36:46.502 [debug] Current batch of media processed. Will check again in 1000ms 09:36:47.503 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1388, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", "id" => "3ojCgjkGzX0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3ojCgjkGzX0", "playlist_index" => 14, "timestamp" => 1776187801, "title" => "Valve Changes Everything For Low VRAM GPUs On Linux", "upload_date" => "20260414"} 09:36:47.503 [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 (?)) [30] 09:36:47.503 [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" = ?) [30] 09:36:47.508 [debug] QUERY OK source="media_items" db=4.3ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 09:36:47.509 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "a7a06e3b-9b9e-4475-93e1-da0a783e3a16", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 14:36:47Z], ~U[2026-04-30 14:36:47Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 09:36:47.510 [debug] QUERY OK source="sources" db=0.1ms idle=114.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" = ?) [30] 09:36:47.510 [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] 09:36:47.510 [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 [2729471] 09:36:47.510 [debug] Current batch of media processed. Will check again in 1000ms 09:36:48.512 [debug] Current batch of media processed. Will check again in 1000ms 09:36:49.513 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1405, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", "id" => "-3MJA0NfvRE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-3MJA0NfvRE", "playlist_index" => 15, "timestamp" => 1776101400, "title" => "Console Hackers Put Linux On Everything", "upload_date" => "20260413"} 09:36:49.514 [debug] QUERY OK source="sources" db=0.2ms idle=533.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 (?)) [30] 09:36:49.514 [debug] QUERY OK source="sources" db=0.1ms idle=533.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" = ?) [30] 09:36:49.519 [debug] QUERY OK source="media_items" db=4.3ms idle=533.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 09:36:49.521 [debug] QUERY OK source="media_items" db=1.8ms idle=538.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "d15bf832-cf51-42b9-8b53-a8e9a782be46", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 14:36:49Z], ~U[2026-04-30 14:36:49Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 09:36:49.521 [debug] QUERY OK source="sources" db=0.1ms idle=121.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" = ?) [30] 09:36:49.522 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:49.522 [debug] QUERY OK source="media_items" db=0.1ms 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 [2721843] 09:36:49.522 [debug] Current batch of media processed. Will check again in 1000ms 09:36:50.523 [debug] Current batch of media processed. Will check again in 1000ms 09:36:51.524 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 716, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", "id" => "yiuQB1Dq3Xk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "playlist_index" => 16, "timestamp" => 1776015028, "title" => "The Linux Kernel Eliminated This Entire C Function", "upload_date" => "20260412"} 09:36:51.524 [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 (?)) [30] 09:36:51.524 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 09:36:51.529 [debug] QUERY OK source="media_items" db=4.2ms idle=543.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 09:36:51.530 [debug] QUERY OK source="media_items" db=1.0ms idle=547.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "fd6148e9-4dbb-49d9-87da-61f49be11001", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 14:36:51Z], ~U[2026-04-30 14:36:51Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 09:36:51.531 [debug] QUERY OK source="sources" db=0.1ms idle=127.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" = ?) [30] 09:36:51.531 [debug] QUERY OK source="media_profiles" db=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] 09:36:51.531 [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 [2714041] 09:36:51.531 [debug] Current batch of media processed. Will check again in 1000ms 09:36:52.533 [debug] Current batch of media processed. Will check again in 1000ms 09:36:53.534 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 806, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", "id" => "uMDwmg7i2_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uMDwmg7i2_4", "playlist_index" => 17, "timestamp" => 1775928629, "title" => "\"Copilot Is For Entertainment Purposes Only\"", "upload_date" => "20260411"} 09:36:53.534 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 09:36:53.535 [debug] QUERY OK source="sources" db=0.1ms idle=553.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" = ?) [30] 09:36:53.539 [debug] QUERY OK source="media_items" db=4.6ms idle=554.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 09:36:53.541 [debug] QUERY OK source="media_items" db=1.1ms idle=559.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "3fb3af40-7726-42b8-ba45-78e15107cb71", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 14:36:53Z], ~U[2026-04-30 14:36:53Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 09:36:53.541 [debug] QUERY OK source="sources" db=0.1ms idle=135.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" = ?) [30] 09:36:53.542 [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] 09:36:53.542 [debug] QUERY OK source="media_items" db=0.1ms 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 [2706404] 09:36:53.542 [debug] Current batch of media processed. Will check again in 1000ms 09:36:54.543 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", "id" => "Sk11hvLZiEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk11hvLZiEA", "playlist_index" => 18, "timestamp" => 1775755805, "title" => "The Linux Open Source Document Editors Are Fighting", "upload_date" => "20260409"} 09:36:54.543 [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 (?)) [30] 09:36:54.543 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [30] 09:36:54.548 [debug] QUERY OK source="media_items" db=4.5ms idle=1001.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 09:36:54.550 [debug] QUERY OK source="media_items" db=1.1ms idle=1006.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "9357ab99-4179-4f18-940e-b83e45f19893", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 14:36:54Z], ~U[2026-04-30 14:36:54Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 09:36:54.550 [debug] QUERY OK source="sources" db=0.1ms idle=142.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" = ?) [30] 09:36:54.551 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:36:54.551 [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 [2690052] 09:36:54.551 [debug] Current batch of media processed. Will check again in 1000ms 09:36:55.552 [debug] Current batch of media processed. Will check again in 1000ms 09:36:56.553 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 823, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", "id" => "4XN_1MVwZJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "playlist_index" => 19, "timestamp" => 1775669401, "title" => "This One Annoying Linux Problem Is Finally Ending", "upload_date" => "20260408"} 09:36:56.554 [debug] QUERY OK source="sources" db=0.1ms idle=573.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 (?)) [30] 09:36:56.554 [debug] QUERY OK source="sources" db=0.1ms idle=573.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" = ?) [30] 09:36:56.559 [debug] QUERY OK source="media_items" db=4.3ms idle=573.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 09:36:56.561 [debug] QUERY OK source="media_items" db=1.3ms idle=578.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "33ccc681-1ef1-4cab-b49a-ccec7b464f81", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 14:36:56Z], ~U[2026-04-30 14:36:56Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 09:36:56.561 [debug] QUERY OK source="sources" db=0.1ms idle=149.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" = ?) [30] 09:36:56.561 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:36:56.561 [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 [2681964] 09:36:56.562 [debug] Current batch of media processed. Will check again in 1000ms 09:36:57.563 [debug] Current batch of media processed. Will check again in 1000ms 09:36:58.290 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/77/4f/774fe8e3f8150e5e18d740afcd02b3e686e72f98fe25a0796895ad3482918cc8.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ec/dc/ecdcdc60c0faaa693f6e16f288dcf7a22e97d037301cea094c19f35fd4087108.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:36:58.290 [debug] Gracefully stopping file follower 09:36:58.291 [debug] QUERY OK source="sources" db=0.3ms idle=877.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 (?)) [30] 09:36:58.291 [debug] QUERY OK source="sources" db=0.0ms idle=310.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" = ?) [30] 09:36:58.295 [debug] QUERY OK source="media_items" db=4.3ms idle=310.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 09:36:58.297 [debug] QUERY OK source="media_items" db=1.0ms idle=315.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "cae60a78-bab7-41dc-8a99-06cbd2d53a6e", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 09:36:58.297 [debug] QUERY OK source="sources" db=0.3ms idle=316.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" = ?) [30] 09:36:58.302 [debug] QUERY OK source="media_items" db=4.6ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 09:36:58.304 [debug] QUERY OK source="media_items" db=1.4ms idle=11.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "3dc30f64-1343-4efd-816b-e939f3f3fb0a", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 09:36:58.305 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.309 [debug] QUERY OK source="media_items" db=4.1ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 09:36:58.311 [debug] QUERY OK source="media_items" db=1.0ms idle=11.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "bb6978fd-a6fc-409b-b59f-b8191d02a873", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 09:36:58.311 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 09:36:58.316 [debug] QUERY OK source="media_items" db=4.4ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 09:36:58.317 [debug] QUERY OK source="media_items" db=1.0ms idle=11.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "90b14b18-e33a-41fc-8e3b-84f77ac1a24b", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 09:36:58.318 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [30] 09:36:58.323 [debug] QUERY OK source="media_items" db=4.0ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 09:36:58.324 [debug] QUERY OK source="media_items" db=1.0ms idle=11.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "78171df4-5c38-434a-96f5-f7f12a224a41", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 09:36:58.325 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.329 [debug] QUERY OK source="media_items" db=3.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 09:36:58.330 [debug] QUERY OK source="media_items" db=0.9ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "f702a946-e360-4936-9b3d-4ea22e8944d5", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 09:36:58.331 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.335 [debug] QUERY OK source="media_items" db=4.0ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 09:36:58.336 [debug] QUERY OK source="media_items" db=1.2ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7a64a265-0107-4146-8673-d8f44bad5ddd", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 09:36:58.337 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 09:36:58.341 [debug] QUERY OK source="media_items" db=4.0ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 09:36:58.343 [debug] QUERY OK source="media_items" db=1.0ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a988f15b-3b44-45db-8cdd-85c17aa88628", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 09:36:58.343 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.348 [debug] QUERY OK source="media_items" db=3.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 09:36:58.349 [debug] QUERY OK source="media_items" db=1.0ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "832fdadc-e657-4cba-a1fb-66333a7e4301", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 09:36:58.350 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.354 [debug] QUERY OK source="media_items" db=4.2ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 09:36:58.355 [debug] QUERY OK source="media_items" db=1.0ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "92b50cd5-5ed1-442b-ad43-9631a50ec82e", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 09:36:58.356 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.360 [debug] QUERY OK source="media_items" db=3.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 09:36:58.362 [debug] QUERY OK source="media_items" db=0.9ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "249704db-24a5-4908-ba3a-fa0cb0a58885", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 09:36:58.362 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.366 [debug] QUERY OK source="media_items" db=3.9ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 09:36:58.371 [debug] QUERY OK source="media_items" db=3.9ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "7c866ba8-512e-4cdf-86ec-a59724a866aa", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 09:36:58.371 [debug] QUERY OK source="sources" db=0.5ms idle=10.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" = ?) [30] 09:36:58.375 [debug] QUERY OK source="media_items" db=3.9ms idle=9.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 09:36:58.380 [debug] QUERY OK source="media_items" db=4.6ms idle=13.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "a68c667e-7bdf-4b0f-a785-77e5d0fabc00", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 09:36:58.381 [debug] QUERY OK source="sources" db=0.5ms idle=14.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" = ?) [30] 09:36:58.385 [debug] QUERY OK source="media_items" db=4.0ms idle=10.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 09:36:58.387 [debug] QUERY OK source="media_items" db=1.0ms idle=14.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "f883a7c0-c32d-4a47-bd95-ee67935298f0", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 09:36:58.387 [debug] QUERY OK source="sources" db=0.5ms idle=11.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" = ?) [30] 09:36:58.392 [debug] QUERY OK source="media_items" db=4.0ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 09:36:58.393 [debug] QUERY OK source="media_items" db=0.9ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "cb88c017-5397-4bfb-856c-f496ce28e0b9", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 09:36:58.394 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.398 [debug] QUERY OK source="media_items" db=4.3ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 09:36:58.416 [debug] QUERY OK source="media_items" db=17.5ms idle=10.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "bd650eb4-e086-4596-8e10-3908ddb3413e", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 09:36:58.417 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 09:36:58.421 [debug] QUERY OK source="media_items" db=4.1ms idle=23.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 09:36:58.427 [debug] QUERY OK source="media_items" db=5.0ms idle=23.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "4e94f451-0f1e-4ec9-b43e-a27439999007", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 09:36:58.427 [debug] QUERY OK source="sources" db=0.2ms idle=12.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" = ?) [30] 09:36:58.431 [debug] QUERY OK source="media_items" db=4.0ms idle=11.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 09:36:58.433 [debug] QUERY OK source="media_items" db=1.0ms idle=14.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "20f9173c-4806-4941-a667-f9edbc5fc73e", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 09:36:58.434 [debug] QUERY OK source="sources" db=0.6ms idle=11.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" = ?) [30] 09:36:58.438 [debug] QUERY OK source="media_items" db=3.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 09:36:58.439 [debug] QUERY OK source="media_items" db=0.9ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "b92e7f55-37d7-4245-9c69-c13b65b4fea3", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 09:36:58.440 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 09:36:58.444 [debug] QUERY OK source="media_items" db=3.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 17:30:06Z], 30] 09:36:58.445 [debug] QUERY OK source="media_items" db=0.8ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "0aaf3477-ddb0-4a85-adfa-edc4516a060e", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, false, false, 30, [], 98, ~U[2026-04-07 17:30:06Z], ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], "Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, 30, ~U[2026-04-07 17:30:06Z]] 09:36:58.446 [debug] QUERY OK source="sources" db=0.5ms idle=7.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z], 30] 09:36:58.450 [debug] QUERY OK source="media_items" db=4.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 INNER JOIN "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")))) [30] 09:36:58.454 [debug] QUERY OK source="media_items" db=4.2ms idle=10.4ms 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")))) [30] 09:36:58.455 [debug] QUERY OK source="media_items" db=0.7ms idle=10.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 09:36:58.457 [debug] QUERY OK source="tasks" db=0.5ms idle=6.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300684, 30, ~U[2026-04-30 14:36:58Z], ~U[2026-04-30 14:36:58Z]] 09:36:58.458 [info] {"args":{"id":30},"id":300638,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":38100589,"event":"job:stop","queue_time":441197,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:37:00.876 [info] {"source":"oban","duration":196,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:37:06.477 [info] {"source":"oban","duration":3667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:37:36.483 [info] {"source":"oban","duration":3766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:00.877 [info] {"source":"oban","duration":144,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:38:06.487 [info] {"source":"oban","duration":3806,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:14.539 [info] {"args":{"id":52},"id":300681,"meta":{},"system_time":1777559894539307125,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:38:14.539 [debug] QUERY OK source="sources" db=0.2ms idle=558.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" = ?) [52] 09:38:14.540 [debug] QUERY OK source="settings" db=0.3ms idle=558.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:14.540 [debug] QUERY OK source="media_profiles" db=0.3ms idle=559.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] 09:38:14.541 [debug] QUERY OK source="settings" db=0.3ms idle=8.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:14.541 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:38:14.743 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:38:14.744 [debug] QUERY OK source="media_items" db=0.4ms idle=204.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:38:14.745 [debug] QUERY OK source="settings" db=0.1ms idle=205.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:14.745 [debug] QUERY OK source="settings" db=0.1ms idle=205.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:14.745 [debug] Running yt-dlp command for action: get_media_attributes 09:38:14.747 [debug] QUERY OK source="settings" db=0.0ms idle=206.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 [] 09:38:14.747 [debug] QUERY OK source="settings" db=0.0ms idle=206.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:14.747 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:14.747 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/4f/f6/4ff6729ded8dc162cefa70f172c0e130bec4bc4adcd8dc5fa068af1157231167.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:16.541 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/4f/f6/4ff6729ded8dc162cefa70f172c0e130bec4bc4adcd8dc5fa068af1157231167.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:38:16.541 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:38:16.542 [debug] QUERY OK source="media_items" db=0.6ms idle=559.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 ((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")))) [52] 09:38:16.544 [debug] QUERY OK source="tasks" db=0.2ms idle=562.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300685, 1301334, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.546 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300686, 1301335, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.548 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300687, 1301347, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.551 [info] {"args":{"id":1301334},"id":300685,"meta":{},"system_time":1777559896551216849,"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"]} 09:38:16.551 [info] {"args":{"id":1301335},"id":300686,"meta":{},"system_time":1777559896551248630,"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"]} 09:38:16.551 [debug] QUERY OK source="media_items" db=0.1ms idle=2.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" = ?) [1301334] 09:38:16.551 [debug] QUERY OK source="media_items" db=0.1ms 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 WHERE (m0."id" = ?) [1301335] 09:38:16.551 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:16.551 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:16.552 [debug] QUERY OK source="sources" db=0.4ms queue=0.5ms idle=0.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" = ?) [52] 09:38:16.552 [debug] QUERY OK source="sources" db=0.5ms queue=0.5ms 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" = ?) [52] 09:38:16.552 [debug] QUERY OK source="tasks" db=0.4ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300688, 1301392, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.553 [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] 09:38:16.553 [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] 09:38:16.554 [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 [1301335] 09:38:16.554 [debug] QUERY OK source="media_items" db=0.7ms 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 [1301334] 09:38:16.554 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301335] 09:38:16.554 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:38:16.555 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:38:16.555 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301334] 09:38:16.555 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:38:16.556 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 09:38:16.556 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:16.556 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:38:16.556 [debug] QUERY OK source="tasks" db=0.2ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300689, 1301393, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.557 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:38:16.558 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:16.558 [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 [] 09:38:16.558 [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 [] 09:38:16.559 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:38:16.559 [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 [] 09:38:16.559 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/97/fc/97fce3047f059ef5f5e1a219c6ff35c2d113d77997243a3183162c753e8fd2ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:16.559 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:38:16.559 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:38:16.560 [debug] QUERY OK source="tasks" db=0.4ms idle=0.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300690, 1301394, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.560 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a6/84/a68424880a21067bc57a7b5b527f79704de9c6bf54537916bab019118b437c41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:16.562 [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" [300691, 1301395, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.564 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300692, 1301397, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.566 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300693, 1301398, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.568 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300694, 1301399, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.570 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300695, 1301400, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.572 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300696, 2720968, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.574 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300697, 52, ~U[2026-04-30 14:38:16Z], ~U[2026-04-30 14:38:16Z]] 09:38:16.574 [info] {"args":{"id":52},"id":300681,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2034747,"event":"job:stop","queue_time":21308,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:38:18.268 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/97/fc/97fce3047f059ef5f5e1a219c6ff35c2d113d77997243a3183162c753e8fd2ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:18.268 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:18.268 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:18.268 [info] {"args":{"id":1301335},"id":300686,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1717188,"event":"job:stop","queue_time":549934,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:18.275 [info] {"args":{"id":1301347},"id":300687,"meta":{},"system_time":1777559898275748652,"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"]} 09:38:18.276 [debug] QUERY OK source="media_items" db=0.2ms idle=294.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" = ?) [1301347] 09:38:18.276 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:18.276 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 09:38:18.277 [debug] QUERY OK source="media_profiles" db=0.1ms idle=295.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] 09:38:18.277 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301347] 09:38:18.279 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301347] 09:38:18.279 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:38:18.279 [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 [] 09:38:18.279 [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 [] 09:38:18.280 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:18.282 [debug] QUERY OK source="settings" db=0.1ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:18.282 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:38:18.283 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:38:18.283 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/44/10/441028f605c6df141bb8e32dd4d2b0c530a76fbf1b8a5ee0e0b25048adfb43c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:18.581 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a6/84/a68424880a21067bc57a7b5b527f79704de9c6bf54537916bab019118b437c41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:18.581 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:18.581 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:18.581 [info] {"args":{"id":1301334},"id":300685,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2030090,"event":"job:stop","queue_time":549934,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:18.587 [info] {"args":{"id":1301392},"id":300688,"meta":{},"system_time":1777559898587739515,"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"]} 09:38:18.588 [debug] QUERY OK source="media_items" db=0.1ms idle=305.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" = ?) [1301392] 09:38:18.588 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:18.588 [debug] QUERY OK source="sources" db=0.1ms idle=305.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" = ?) [52] 09:38:18.588 [debug] QUERY OK source="media_profiles" db=0.1ms idle=50.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] 09:38:18.589 [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 [1301392] 09:38:18.590 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301392] 09:38:18.590 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:38:18.590 [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 [] 09:38:18.591 [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 [] 09:38:18.591 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:18.592 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:18.592 [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 [] 09:38:18.592 [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 [] 09:38:18.592 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/53/69534efb3e508b9ebe00d7c52c872f664c4ba82fd25bcd636e08ccffed69b662.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:19.858 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/44/10/441028f605c6df141bb8e32dd4d2b0c530a76fbf1b8a5ee0e0b25048adfb43c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:19.858 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:19.858 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:19.859 [info] {"args":{"id":1301347},"id":300687,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1582978,"event":"job:stop","queue_time":2274950,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:19.865 [info] {"args":{"id":1301393},"id":300689,"meta":{},"system_time":1777559899865552060,"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"]} 09:38:19.865 [debug] QUERY OK source="media_items" db=0.1ms idle=1273.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" = ?) [1301393] 09:38:19.866 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:19.866 [debug] QUERY OK source="sources" db=0.1ms idle=1273.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" = ?) [52] 09:38:19.866 [debug] QUERY OK source="media_profiles" db=0.1ms idle=327.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] 09:38:19.866 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301393] 09:38:19.867 [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" = ?) [1301393] 09:38:19.867 [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] 09:38:19.868 [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 [] 09:38:19.868 [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 [] 09:38:19.868 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:19.869 [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 [] 09:38:19.869 [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 [] 09:38:19.869 [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 [] 09:38:19.869 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8a/89/8a89f0499b5dfae6abcf16d491fa5cab5beb85d1531daee38561ef8567d09688.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:20.246 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/53/69534efb3e508b9ebe00d7c52c872f664c4ba82fd25bcd636e08ccffed69b662.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:20.246 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:20.247 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:20.247 [info] {"args":{"id":1301392},"id":300688,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1659466,"event":"job:stop","queue_time":2586946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:20.253 [info] {"args":{"id":1301394},"id":300690,"meta":{},"system_time":1777559900253523607,"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"]} 09:38:20.253 [debug] QUERY OK source="media_items" db=0.1ms idle=384.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" = ?) [1301394] 09:38:20.254 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:20.254 [debug] QUERY OK source="sources" db=0.2ms idle=384.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" = ?) [52] 09:38:20.254 [debug] QUERY OK source="media_profiles" db=0.2ms idle=384.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] 09:38:20.255 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301394] 09:38:20.256 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 09:38:20.256 [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] 09:38:20.256 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:20.257 [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 [] 09:38:20.257 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:20.258 [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 [] 09:38:20.258 [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 [] 09:38:20.258 [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 [] 09:38:20.258 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/b4/6ab4adf971f31ee7aa2d9f9f0f462852262c7a5044e13b7eb088705562fe0a7d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:21.270 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8a/89/8a89f0499b5dfae6abcf16d491fa5cab5beb85d1531daee38561ef8567d09688.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:21.270 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:21.271 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:21.271 [info] {"args":{"id":1301393},"id":300689,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1405542,"event":"job:stop","queue_time":3864895,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:21.278 [info] {"args":{"id":1301395},"id":300691,"meta":{},"system_time":1777559901278007591,"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"]} 09:38:21.278 [debug] QUERY OK source="media_items" db=0.1ms idle=1019.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" = ?) [1301395] 09:38:21.278 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:21.278 [debug] QUERY OK source="sources" db=0.1ms idle=1020.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" = ?) [52] 09:38:21.279 [debug] QUERY OK source="media_profiles" db=0.1ms idle=737.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] 09:38:21.279 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301395] 09:38:21.281 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301395] 09:38:21.281 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:38:21.281 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:21.281 [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 [] 09:38:21.281 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:21.282 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:21.282 [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 [] 09:38:21.282 [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 [] 09:38:21.282 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/2a/4e2ad0868b0156e9b0eaf9c5838660d96c1fc65e03c38a9ed511b4fd7324bf92.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:22.004 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/b4/6ab4adf971f31ee7aa2d9f9f0f462852262c7a5044e13b7eb088705562fe0a7d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:22.004 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:22.004 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:22.005 [info] {"args":{"id":1301394},"id":300690,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1750994,"event":"job:stop","queue_time":4252940,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:22.011 [info] {"args":{"id":1301397},"id":300692,"meta":{},"system_time":1777559902011867531,"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"]} 09:38:22.012 [debug] QUERY OK source="media_items" db=0.3ms idle=729.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" = ?) [1301397] 09:38:22.012 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:22.012 [debug] QUERY OK source="sources" db=0.1ms idle=729.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" = ?) [52] 09:38:22.013 [debug] QUERY OK source="media_profiles" db=0.1ms idle=470.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] 09:38:22.013 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301397] 09:38:22.015 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301397] 09:38:22.015 [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] 09:38:22.015 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:22.016 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:22.016 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:22.017 [debug] QUERY OK source="settings" db=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 [] 09:38:22.017 [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 [] 09:38:22.017 [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 [] 09:38:22.017 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2a/43/2a43423612c4f017be6a33f6a9aeb6547c9a6c92d7bfb25464c788a7525244f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:22.885 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/2a/4e2ad0868b0156e9b0eaf9c5838660d96c1fc65e03c38a9ed511b4fd7324bf92.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:22.885 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:22.885 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:22.886 [info] {"args":{"id":1301395},"id":300691,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1607942,"event":"job:stop","queue_time":5276930,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:22.892 [info] {"args":{"id":1301398},"id":300693,"meta":{},"system_time":1777559902892656670,"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"]} 09:38:22.893 [debug] QUERY OK source="media_items" db=0.2ms idle=875.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" = ?) [1301398] 09:38:22.893 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:22.893 [debug] QUERY OK source="sources" db=0.2ms idle=875.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" = ?) [52] 09:38:22.893 [debug] QUERY OK source="media_profiles" db=0.1ms idle=348.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] 09:38:22.894 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301398] 09:38:22.897 [debug] QUERY OK source="media_metadata" db=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" = ?) [1301398] 09:38:22.897 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:38:22.897 [debug] QUERY OK source="settings" db=0.1ms idle=4.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 [] 09:38:22.898 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:22.898 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:22.899 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:38:22.899 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:22.900 [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 [] 09:38:22.900 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/92/79/9279cda445d6c630c70b7c33d0604eff0057ed9beb1aac838f19c806d487f8f7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:23.543 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2a/43/2a43423612c4f017be6a33f6a9aeb6547c9a6c92d7bfb25464c788a7525244f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:23.543 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:23.543 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:23.544 [info] {"args":{"id":1301397},"id":300692,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1532074,"event":"job:stop","queue_time":6010956,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:23.550 [info] {"args":{"id":1301399},"id":300694,"meta":{},"system_time":1777559903550469030,"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"]} 09:38:23.550 [debug] QUERY OK source="media_items" db=0.1ms idle=650.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" = ?) [1301399] 09:38:23.550 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:23.551 [debug] QUERY OK source="sources" db=0.1ms idle=650.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" = ?) [52] 09:38:23.551 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:38:23.551 [debug] QUERY OK source="media_items" db=0.1ms 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 [1301399] 09:38:23.553 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301399] 09:38:23.553 [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] 09:38:23.553 [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 [] 09:38:23.553 [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 [] 09:38:23.553 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:23.555 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:23.555 [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 [] 09:38:23.555 [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 [] 09:38:23.555 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/b5/e7b5a47eaba95bd397761596e82f3fd9fef98ad9c784938fd086937e72584af7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:24.722 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/92/79/9279cda445d6c630c70b7c33d0604eff0057ed9beb1aac838f19c806d487f8f7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:24.723 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:24.723 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:24.723 [info] {"args":{"id":1301398},"id":300693,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1830475,"event":"job:stop","queue_time":6891897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:24.729 [info] {"args":{"id":1301400},"id":300695,"meta":{},"system_time":1777559904729658372,"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"]} 09:38:24.730 [debug] QUERY OK source="media_items" db=0.1ms idle=1174.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" = ?) [1301400] 09:38:24.730 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:24.730 [debug] QUERY OK source="sources" db=0.2ms idle=1174.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" = ?) [52] 09:38:24.730 [debug] QUERY OK source="media_profiles" db=0.1ms idle=183.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] 09:38:24.731 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301400] 09:38:24.733 [debug] QUERY OK source="media_metadata" db=0.0ms idle=4.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" = ?) [1301400] 09:38:24.733 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:38:24.734 [debug] QUERY OK source="settings" db=0.1ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:24.734 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:24.734 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:24.734 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:38:24.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 [] 09:38:24.735 [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 [] 09:38:24.735 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ad/05/ad057ac896a21a04809ef9f3f7aae328bec4db1af11f2ec3eb31e2df892f7cab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:25.163 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/b5/e7b5a47eaba95bd397761596e82f3fd9fef98ad9c784938fd086937e72584af7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:25.163 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:25.163 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:25.164 [info] {"args":{"id":1301399},"id":300694,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1613360,"event":"job:stop","queue_time":7549888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:25.170 [info] {"args":{"id":2720968},"id":300696,"meta":{},"system_time":1777559905170511490,"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"]} 09:38:25.170 [debug] QUERY OK source="media_items" db=0.1ms idle=435.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" = ?) [2720968] 09:38:25.171 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:38:25.171 [debug] QUERY OK source="sources" db=0.1ms idle=436.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" = ?) [52] 09:38:25.171 [debug] QUERY OK source="media_profiles" db=0.1ms idle=436.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] 09:38:25.171 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 09:38:25.173 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [2720968] 09:38:25.173 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:38:25.174 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:25.174 [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 [] 09:38:25.174 [debug] Running yt-dlp command for action: get_downloadable_status 09:38:25.175 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:38:25.175 [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 [] 09:38:25.175 [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 [] 09:38:25.175 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/d0/02d0104a123c0d690b050e35a006c6e1b15a4b7ebaf02dcda9bee19fe22a03d5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:38:26.307 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ad/05/ad057ac896a21a04809ef9f3f7aae328bec4db1af11f2ec3eb31e2df892f7cab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:26.307 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:26.307 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:26.307 [info] {"args":{"id":1301400},"id":300695,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1577875,"event":"job:stop","queue_time":8728902,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:26.965 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/d0/02d0104a123c0d690b050e35a006c6e1b15a4b7ebaf02dcda9bee19fe22a03d5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:38:26.965 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:26.965 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:38:26.965 [info] {"args":{"id":2720968},"id":300696,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1794871,"event":"job:stop","queue_time":9169892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:38:36.492 [info] {"source":"oban","duration":3666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:00.878 [info] {"source":"oban","duration":166,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:39:06.496 [info] {"source":"oban","duration":3073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:36.500 [info] {"source":"oban","duration":2999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:00.879 [info] {"source":"oban","duration":138,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:40:06.503 [info] {"source":"oban","duration":2610,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:36.507 [info] {"source":"oban","duration":3380,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:00.880 [info] {"source":"oban","duration":300,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:41:06.510 [info] {"source":"oban","duration":2456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:36.514 [info] {"source":"oban","duration":3636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:00.881 [info] {"source":"oban","duration":571,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:42:06.518 [info] {"source":"oban","duration":3501,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:36.521 [info] {"source":"oban","duration":2624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:00.882 [info] {"source":"oban","duration":349,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:43:06.525 [info] {"source":"oban","duration":3200,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:36.528 [info] {"source":"oban","duration":2813,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:00.883 [info] {"source":"oban","duration":149,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:44:06.533 [info] {"source":"oban","duration":3065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:36.536 [info] {"source":"oban","duration":2301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:00.884 [info] {"source":"oban","duration":138,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:45:06.539 [info] {"source":"oban","duration":2408,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:36.542 [info] {"source":"oban","duration":2239,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:00.885 [info] {"source":"oban","duration":141,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:46:06.545 [info] {"source":"oban","duration":2397,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:36.549 [info] {"source":"oban","duration":3231,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:00.886 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:47:06.552 [info] {"source":"oban","duration":2628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:36.555 [info] {"source":"oban","duration":2437,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:00.887 [info] {"source":"oban","duration":134,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:48:06.558 [info] {"source":"oban","duration":2497,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:17.370 [info] {"args":{"id":52},"id":300697,"meta":{},"system_time":1777560497370875373,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:48:17.371 [debug] QUERY OK source="sources" db=0.3ms idle=1390.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" = ?) [52] 09:48:17.371 [debug] QUERY OK source="settings" db=0.3ms idle=1390.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:17.372 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1009.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] 09:48:17.372 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:48:17.372 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:48:17.544 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:48:17.545 [debug] QUERY OK source="media_items" db=0.3ms idle=174.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:48:17.546 [debug] QUERY OK source="settings" db=0.1ms idle=174.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:17.546 [debug] QUERY OK source="settings" db=0.0ms idle=174.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 [] 09:48:17.546 [debug] Running yt-dlp command for action: get_media_attributes 09:48:17.547 [debug] QUERY OK source="settings" db=0.0ms idle=174.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:17.547 [debug] QUERY OK source="settings" db=0.0ms idle=174.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:17.547 [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 [] 09:48:17.547 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/8b/13/8b13ef367490c289d2612854d092d5ac11d3e9e281b4e7838c031d8f3d83149f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:19.274 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/8b/13/8b13ef367490c289d2612854d092d5ac11d3e9e281b4e7838c031d8f3d83149f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:48:19.274 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:48:19.275 [debug] QUERY OK source="media_items" db=0.7ms idle=907.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 ((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")))) [52] 09:48:19.277 [debug] QUERY OK source="tasks" db=0.1ms idle=296.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300698, 1301334, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.279 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300699, 1301335, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.281 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300700, 1301347, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.284 [info] {"args":{"id":1301334},"id":300698,"meta":{},"system_time":1777560499284098251,"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"]} 09:48:19.284 [info] {"args":{"id":1301335},"id":300699,"meta":{},"system_time":1777560499284143599,"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"]} 09:48:19.284 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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" = ?) [1301334] 09:48:19.284 [debug] QUERY OK source="media_items" db=0.3ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 09:48:19.284 [debug] QUERY OK source="tasks" db=0.3ms idle=0.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300701, 1301392, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.284 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:19.284 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:19.285 [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" = ?) [52] 09:48:19.285 [debug] QUERY OK source="sources" db=0.5ms idle=0.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" = ?) [52] 09:48:19.285 [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] 09:48:19.285 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:48:19.286 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301334] 09:48:19.286 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301335] 09:48:19.288 [debug] QUERY OK source="tasks" db=0.2ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300702, 1301393, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.289 [debug] QUERY OK source="media_metadata" db=0.1ms queue=1.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" = ?) [1301334] 09:48:19.290 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301335] 09:48:19.290 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:48:19.290 [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] 09:48:19.290 [debug] QUERY OK source="tasks" db=0.2ms idle=0.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300703, 1301394, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.290 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:48:19.290 [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 [] 09:48:19.291 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:48:19.291 [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 [] 09:48:19.291 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:19.291 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:19.292 [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 [] 09:48:19.292 [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 [] 09:48:19.292 [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 [] 09:48:19.292 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/08/d90843e3736a50df21879bccca75ffa6a190b1d842cfc0e012d084d89da0d74e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:19.293 [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 [] 09:48:19.293 [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 [] 09:48:19.293 [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 [] 09:48:19.293 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/22/4222f9f2bf381fb5c951ed25df9c0079c9ed8bb3f210b1ea5f2bec70b39b3437.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:19.293 [debug] QUERY OK source="tasks" db=0.2ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300704, 1301395, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.296 [debug] QUERY OK source="tasks" db=0.1ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300705, 1301397, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.298 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300706, 1301398, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.300 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300707, 1301399, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.302 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300708, 1301400, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.304 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300709, 2720968, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.306 [debug] QUERY OK source="tasks" db=0.2ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300710, 52, ~U[2026-04-30 14:48:19Z], ~U[2026-04-30 14:48:19Z]] 09:48:19.306 [info] {"args":{"id":52},"id":300697,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":1935158,"event":"job:stop","queue_time":796733,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:48:20.982 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/08/d90843e3736a50df21879bccca75ffa6a190b1d842cfc0e012d084d89da0d74e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:20.982 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:20.982 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:20.982 [info] {"args":{"id":1301334},"id":300698,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1698283,"event":"job:stop","queue_time":282888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:20.988 [info] {"args":{"id":1301347},"id":300700,"meta":{},"system_time":1777560500988563084,"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"]} 09:48:20.988 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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" = ?) [1301347] 09:48:20.989 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:20.989 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [52] 09:48:20.989 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.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] 09:48:20.990 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301347] 09:48:20.991 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301347] 09:48:20.991 [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] 09:48:20.991 [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 [] 09:48:20.991 [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 [] 09:48:20.991 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:20.993 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:20.994 [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 [] 09:48:20.994 [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 [] 09:48:20.994 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/e4/39e49827f8f651b34f77e2de2ffbe97e8d80baf4e56349efbfb6902e94777041.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:21.026 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/22/4222f9f2bf381fb5c951ed25df9c0079c9ed8bb3f210b1ea5f2bec70b39b3437.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:21.026 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:21.026 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:21.026 [info] {"args":{"id":1301335},"id":300699,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1742338,"event":"job:stop","queue_time":282888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:21.033 [info] {"args":{"id":1301392},"id":300701,"meta":{},"system_time":1777560501033470119,"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"]} 09:48:21.033 [debug] QUERY OK source="media_items" db=0.1ms idle=39.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" = ?) [1301392] 09:48:21.033 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:21.034 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 09:48:21.034 [debug] QUERY OK source="media_profiles" db=0.1ms idle=40.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] 09:48:21.034 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301392] 09:48:21.037 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1301392] 09:48:21.037 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:48:21.038 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:21.038 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:21.038 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:21.040 [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 [] 09:48:21.041 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:21.041 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:21.041 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/95/5195e3134e7a8e53f910be7e1683e77bfd8339b75cebe7fb384ae868d0b90ba3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:22.743 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/e4/39e49827f8f651b34f77e2de2ffbe97e8d80baf4e56349efbfb6902e94777041.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:22.743 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:22.743 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:22.744 [info] {"args":{"id":1301347},"id":300700,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1755296,"event":"job:stop","queue_time":1987948,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:22.750 [info] {"args":{"id":1301393},"id":300702,"meta":{},"system_time":1777560502750701562,"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"]} 09:48:22.751 [debug] QUERY OK source="media_items" db=0.1ms idle=1709.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" = ?) [1301393] 09:48:22.751 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:22.751 [debug] QUERY OK source="sources" db=0.1ms idle=1380.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" = ?) [52] 09:48:22.751 [debug] QUERY OK source="media_profiles" db=0.1ms idle=379.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] 09:48:22.752 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301393] 09:48:22.753 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301393] 09:48:22.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] 09:48:22.754 [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 [] 09:48:22.754 [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 [] 09:48:22.754 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:22.755 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:22.755 [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 [] 09:48:22.755 [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 [] 09:48:22.755 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cb/9e/cb9e320c713fe1362eb27ae757da7613d912e3e74ff8c157293e5933c5cec63b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:22.874 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/95/5195e3134e7a8e53f910be7e1683e77bfd8339b75cebe7fb384ae868d0b90ba3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:22.874 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:22.874 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:22.874 [info] {"args":{"id":1301392},"id":300701,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1840821,"event":"job:stop","queue_time":2032898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:22.880 [info] {"args":{"id":1301394},"id":300703,"meta":{},"system_time":1777560502880508393,"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"]} 09:48:22.880 [debug] QUERY OK source="media_items" db=0.2ms idle=125.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" = ?) [1301394] 09:48:22.881 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:22.881 [debug] QUERY OK source="sources" db=0.1ms idle=125.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" = ?) [52] 09:48:22.881 [debug] QUERY OK source="media_profiles" db=0.1ms idle=125.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] 09:48:22.882 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301394] 09:48:22.883 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301394] 09:48:22.883 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:48:22.883 [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 [] 09:48:22.883 [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 [] 09:48:22.883 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:22.884 [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 [] 09:48:22.884 [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 [] 09:48:22.884 [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 [] 09:48:22.885 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fc/87/fc87283c057e74ddb606e13c6da009eb473ba44ffc6342b0ca66c696d4b459ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:24.382 [info] {"args":{"id":35},"id":300624,"meta":{},"system_time":1777560504382665212,"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"]} 09:48:24.383 [debug] QUERY OK source="sources" db=0.1ms idle=401.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" = ?) [35] 09:48:24.383 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:48:24.386 [debug] QUERY OK source="media_items" db=2.8ms idle=402.4ms 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")))) [35] 09:48:24.387 [debug] QUERY OK source="media_items" db=0.3ms idle=10.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 09:48:24.387 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:48:24.387 [debug] QUERY OK source="settings" db=0.1ms idle=4.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 [] 09:48:24.387 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 09:48:24.391 [debug] QUERY OK source="media_items" db=2.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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [35] 09:48:24.393 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:48:24.393 [debug] Current batch of media processed. Will check again in 1000ms 09:48:24.394 [debug] QUERY OK source="settings" db=0.1ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:24.394 [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 [] 09:48:24.394 [debug] QUERY OK source="settings" db=0.0ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:24.394 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/37/ee/37ee4fb47bd9295b6d4de78d04d630cbf553bac89d14023fec1045721ab26ff9.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/25/eb/25ebbf0cf710f38d903ff36cae9230b266924e203b91caf7f64027b8214dfe23.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:24.421 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cb/9e/cb9e320c713fe1362eb27ae757da7613d912e3e74ff8c157293e5933c5cec63b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:24.421 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:24.422 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:24.422 [info] {"args":{"id":1301393},"id":300702,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1671410,"event":"job:stop","queue_time":3749955,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:24.428 [info] {"args":{"id":1301395},"id":300704,"meta":{},"system_time":1777560504428868808,"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"]} 09:48:24.429 [debug] QUERY OK source="media_items" db=0.1ms idle=35.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" = ?) [1301395] 09:48:24.429 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:24.429 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 09:48:24.430 [debug] QUERY OK source="media_profiles" db=0.1ms idle=35.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] 09:48:24.430 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301395] 09:48:24.431 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301395] 09:48:24.431 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:48:24.431 [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 [] 09:48:24.431 [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 [] 09:48:24.432 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:24.433 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:24.433 [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 [] 09:48:24.433 [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 [] 09:48:24.433 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/26/ed/26ed1973ac559cecd097522164616ffd4164c6d5394ccefd0cde098689c74ede.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:24.672 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fc/87/fc87283c057e74ddb606e13c6da009eb473ba44ffc6342b0ca66c696d4b459ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:24.672 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:24.672 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:24.673 [info] {"args":{"id":1301394},"id":300703,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1792153,"event":"job:stop","queue_time":3879942,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:24.679 [info] {"args":{"id":1301397},"id":300705,"meta":{},"system_time":1777560504679477952,"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"]} 09:48:24.679 [debug] QUERY OK source="media_items" db=0.1ms idle=246.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" = ?) [1301397] 09:48:24.680 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:24.680 [debug] QUERY OK source="sources" db=0.1ms idle=246.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" = ?) [52] 09:48:24.680 [debug] QUERY OK source="media_profiles" db=0.2ms idle=247.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] 09:48:24.681 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301397] 09:48:24.682 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301397] 09:48:24.682 [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] 09:48:24.682 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:24.682 [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 [] 09:48:24.683 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:24.684 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:24.684 [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 [] 09:48:24.684 [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 [] 09:48:24.684 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/d5/f1d5a09f94065aa184ead16a8a16018aaa3411f0be70b817c92f7cd302261c55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:25.395 [debug] Current batch of media processed. Will check again in 1000ms 09:48:26.096 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/26/ed/26ed1973ac559cecd097522164616ffd4164c6d5394ccefd0cde098689c74ede.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:26.096 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:26.096 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:26.096 [info] {"args":{"id":1301395},"id":300704,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1667568,"event":"job:stop","queue_time":5427955,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:26.103 [info] {"args":{"id":1301398},"id":300706,"meta":{},"system_time":1777560506103753690,"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"]} 09:48:26.104 [debug] QUERY OK source="media_items" db=0.1ms idle=122.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" = ?) [1301398] 09:48:26.104 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:26.104 [debug] QUERY OK source="sources" db=0.1ms idle=123.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" = ?) [52] 09:48:26.104 [debug] QUERY OK source="media_profiles" db=0.1ms idle=123.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] 09:48:26.105 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301398] 09:48:26.105 [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" = ?) [1301398] 09:48:26.105 [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] 09:48:26.106 [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 [] 09:48:26.106 [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 [] 09:48:26.106 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:26.106 [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 [] 09:48:26.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 [] 09:48:26.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 [] 09:48:26.107 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/98/be985bfea444d2c426ff04516ebed28eec080086d5d43151935578d9200b4e25.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:26.322 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/d5/f1d5a09f94065aa184ead16a8a16018aaa3411f0be70b817c92f7cd302261c55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:26.323 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:26.323 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:26.323 [info] {"args":{"id":1301397},"id":300705,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1643653,"event":"job:stop","queue_time":5678891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:26.329 [info] {"args":{"id":1301399},"id":300707,"meta":{},"system_time":1777560506329443721,"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"]} 09:48:26.329 [debug] QUERY OK source="media_items" db=0.2ms idle=222.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" = ?) [1301399] 09:48:26.330 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:26.330 [debug] QUERY OK source="sources" db=0.1ms idle=223.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" = ?) [52] 09:48:26.330 [debug] QUERY OK source="media_profiles" db=0.1ms idle=223.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] 09:48:26.331 [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 [1301399] 09:48:26.332 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301399] 09:48:26.332 [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] 09:48:26.332 [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 [] 09:48:26.332 [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 [] 09:48:26.332 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:26.333 [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 [] 09:48:26.333 [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 [] 09:48:26.333 [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 [] 09:48:26.333 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8e/62/8e6259561aeeca2ff9b9ccc8b217ab805210ac528f06e8229cd730e2c875ab5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:26.395 [debug] Current batch of media processed. Will check again in 1000ms 09:48:27.396 [debug] Current batch of media processed. Will check again in 1000ms 09:48:27.686 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/98/be985bfea444d2c426ff04516ebed28eec080086d5d43151935578d9200b4e25.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:27.686 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:27.686 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:27.686 [info] {"args":{"id":1301398},"id":300706,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1582834,"event":"job:stop","queue_time":7102900,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:27.693 [info] {"args":{"id":1301400},"id":300708,"meta":{},"system_time":1777560507693683957,"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"]} 09:48:27.694 [debug] QUERY OK source="media_items" db=0.1ms idle=1360.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" = ?) [1301400] 09:48:27.694 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:27.694 [debug] QUERY OK source="sources" db=0.2ms idle=1315.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" = ?) [52] 09:48:27.694 [debug] QUERY OK source="media_profiles" db=0.1ms idle=314.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] 09:48:27.695 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301400] 09:48:27.696 [debug] QUERY OK source="media_metadata" db=0.1ms idle=2.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" = ?) [1301400] 09:48:27.696 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:48:27.696 [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 [] 09:48:27.696 [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 [] 09:48:27.696 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:27.698 [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 [] 09:48:27.698 [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 [] 09:48:27.699 [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 [] 09:48:27.699 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/75/42/7542ca6ec47291f96a21a05206a8e505171535efe80f7a375f447846709e3a0e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:27.973 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8e/62/8e6259561aeeca2ff9b9ccc8b217ab805210ac528f06e8229cd730e2c875ab5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:27.973 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:27.973 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:27.974 [info] {"args":{"id":1301399},"id":300707,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1644511,"event":"job:stop","queue_time":7328892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:27.980 [info] {"args":{"id":2720968},"id":300709,"meta":{},"system_time":1777560507980632938,"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"]} 09:48:27.981 [debug] QUERY OK source="media_items" db=0.1ms idle=282.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" = ?) [2720968] 09:48:27.981 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:27.981 [debug] QUERY OK source="sources" db=0.1ms idle=282.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" = ?) [52] 09:48:27.981 [debug] QUERY OK source="media_profiles" db=0.1ms idle=282.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] 09:48:27.982 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 09:48:27.983 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2720968] 09:48:27.983 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:48:27.983 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:27.984 [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 [] 09:48:27.984 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:27.985 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:27.985 [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 [] 09:48:27.985 [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 [] 09:48:27.986 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/28/1528780498218f03e97cb3a8c70623dbb7fbca7839a1b2e1a27fb2b7dc4f24d4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:28.398 [debug] Current batch of media processed. Will check again in 1000ms 09:48:29.297 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/75/42/7542ca6ec47291f96a21a05206a8e505171535efe80f7a375f447846709e3a0e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:29.297 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:29.297 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:29.298 [info] {"args":{"id":1301400},"id":300708,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1604259,"event":"job:stop","queue_time":8692953,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:29.304 [info] {"args":{"id":1043787},"id":299243,"meta":{},"system_time":1777560509304646756,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:29.305 [debug] QUERY OK source="media_items" db=0.1ms idle=1319.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" = ?) [1043787] 09:48:29.305 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:48:29.305 [debug] QUERY OK source="sources" db=0.1ms idle=1319.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" = ?) [43] 09:48:29.305 [debug] QUERY OK source="media_profiles" db=0.1ms idle=924.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] 09:48:29.306 [debug] QUERY OK source="media_items" db=0.2ms 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 [1043787] 09:48:29.307 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1043787] 09:48:29.307 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:48:29.307 [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 [] 09:48:29.308 [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 [] 09:48:29.308 [debug] Running yt-dlp command for action: get_downloadable_status 09:48:29.309 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:29.309 [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 [] 09:48:29.309 [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 [] 09:48:29.309 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ySkZ3h0199E --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d2/58/d258252f55029ad6b1d95229798d1f90fe793de7faa00ba4a7e86c2118c0ebfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:29.399 [debug] Current batch of media processed. Will check again in 1000ms 09:48:29.665 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/28/1528780498218f03e97cb3a8c70623dbb7fbca7839a1b2e1a27fb2b7dc4f24d4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:48:29.665 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:29.665 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:48:29.666 [info] {"args":{"id":2720968},"id":300709,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1684832,"event":"job:stop","queue_time":8979905,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:30.400 [debug] Current batch of media processed. Will check again in 1000ms 09:48:31.109 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ySkZ3h0199E --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d2/58/d258252f55029ad6b1d95229798d1f90fe793de7faa00ba4a7e86c2118c0ebfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ySkZ3h0199E: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:48:31.110 [error] yt-dlp download error for media item #1043787: "ERROR: [youtube] ySkZ3h0199E: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:48:31.110 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1043787},"id":299243,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1805484,"event":"job:exception","queue_time":6255705,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:48:31.400 [debug] Current batch of media processed. Will check again in 1000ms 09:48:32.402 [debug] Current batch of media processed. Will check again in 1000ms 09:48:33.403 [debug] Current batch of media processed. Will check again in 1000ms 09:48:34.404 [debug] Current batch of media processed. Will check again in 1000ms 09:48:35.404 [debug] Current batch of media processed. Will check again in 1000ms 09:48:36.406 [debug] Current batch of media processed. Will check again in 1000ms 09:48:36.563 [info] {"source":"oban","duration":4180,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:37.407 [debug] Current batch of media processed. Will check again in 1000ms 09:48:38.408 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 329, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", "id" => "tg8PqPcOWjo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tg8PqPcOWjo", "playlist_index" => 1, "timestamp" => 1777554101, "title" => "A New Folder Just Appeared In Your Home Directory", "upload_date" => "20260430"} 09:48:38.408 [debug] QUERY OK source="sources" db=0.2ms idle=1427.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 (?)) [35] 09:48:38.409 [debug] QUERY OK source="sources" db=0.1ms idle=1427.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" = ?) [35] 09:48:38.412 [debug] QUERY OK source="media_items" db=2.7ms idle=1014.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 13:01:41Z], 35] 09:48:38.413 [debug] QUERY OK source="media_items" db=0.7ms idle=431.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "34fff807-6cab-46ae-9901-7ba0725af583", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, false, false, 35, [], 98, ~U[2026-04-30 13:01:41Z], ~U[2026-04-30 14:48:38Z], ~U[2026-04-30 14:48:38Z], "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, 35, ~U[2026-04-30 13:01:41Z]] 09:48:38.413 [debug] QUERY OK source="sources" db=0.1ms idle=16.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" = ?) [35] 09:48:38.413 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:48:38.414 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2845295] 09:48:38.414 [debug] Current batch of media processed. Will check again in 1000ms 09:48:39.415 [debug] Current batch of media processed. Will check again in 1000ms 09:48:40.416 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1421, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", "id" => "3RpHc4Wl0N8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "playlist_index" => 2, "timestamp" => 1777296686, "title" => "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "upload_date" => "20260427"} 09:48:40.416 [debug] QUERY OK source="sources" db=0.1ms idle=435.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 (?)) [35] 09:48:40.417 [debug] QUERY OK source="sources" db=0.2ms idle=435.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" = ?) [35] 09:48:40.420 [debug] QUERY OK source="media_items" db=2.9ms idle=436.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 13:31:26Z], 35] 09:48:40.421 [debug] QUERY OK source="media_items" db=0.8ms idle=439.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "7e81c139-b861-42f8-938c-f7793e48b679", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, false, false, 35, [], 98, ~U[2026-04-27 13:31:26Z], ~U[2026-04-30 14:48:40Z], ~U[2026-04-30 14:48:40Z], "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, 35, ~U[2026-04-27 13:31:26Z]] 09:48:40.421 [debug] QUERY OK source="sources" db=0.1ms idle=21.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" = ?) [35] 09:48:40.422 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 09:48:40.422 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2822371] 09:48:40.422 [debug] Current batch of media processed. Will check again in 1000ms 09:48:41.423 [debug] Current batch of media processed. Will check again in 1000ms 09:48:42.424 [debug] Current batch of media processed. Will check again in 1000ms 09:48:43.425 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 457, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", "id" => "o3RJSUBtsFg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o3RJSUBtsFg", "playlist_index" => 3, "timestamp" => 1777035694, "title" => "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "upload_date" => "20260424"} 09:48:43.426 [debug] QUERY OK source="sources" db=0.2ms idle=1444.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 (?)) [35] 09:48:43.426 [debug] QUERY OK source="sources" db=0.1ms idle=1445.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" = ?) [35] 09:48:43.429 [debug] QUERY OK source="media_items" db=2.7ms idle=1445.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 13:01:34Z], 35] 09:48:43.430 [debug] QUERY OK source="media_items" db=0.7ms idle=1026.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "b6265a7f-cb83-4a79-93dc-b16e52f7cf5a", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, false, false, 35, [], 98, ~U[2026-04-24 13:01:34Z], ~U[2026-04-30 14:48:43Z], ~U[2026-04-30 14:48:43Z], "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, 35, ~U[2026-04-24 13:01:34Z]] 09:48:43.430 [debug] QUERY OK source="sources" db=0.2ms idle=25.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" = ?) [35] 09:48:43.431 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:48:43.431 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2799346] 09:48:43.431 [debug] Current batch of media processed. Will check again in 1000ms 09:48:44.432 [debug] Current batch of media processed. Will check again in 1000ms 09:48:45.433 [debug] Current batch of media processed. Will check again in 1000ms 09:48:46.434 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 790, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", "id" => "ry2oqoDY_lA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ry2oqoDY_lA", "playlist_index" => 4, "timestamp" => 1776770099, "title" => "Non-Programmer Builds Web App In Minutes", "upload_date" => "20260421"} 09:48:46.434 [debug] QUERY OK source="sources" db=0.1ms idle=1453.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 (?)) [35] 09:48:46.434 [debug] QUERY OK source="sources" db=0.1ms idle=1453.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" = ?) [35] 09:48:46.437 [debug] QUERY OK source="media_items" db=2.8ms idle=1453.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 11:14:59Z], 35] 09:48:46.439 [debug] QUERY OK source="media_items" db=0.8ms idle=1029.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "1e2a93e8-429d-47c1-8c5c-dfd19c348659", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, false, false, 35, [], 98, ~U[2026-04-21 11:14:59Z], ~U[2026-04-30 14:48:46Z], ~U[2026-04-30 14:48:46Z], "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, 35, ~U[2026-04-21 11:14:59Z]] 09:48:46.439 [debug] QUERY OK source="sources" db=0.1ms idle=28.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" = ?) [35] 09:48:46.439 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:48:46.439 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2776103] 09:48:46.439 [debug] Current batch of media processed. Will check again in 1000ms 09:48:47.418 [info] {"args":{"id":36},"id":300452,"meta":{},"system_time":1777560527418705586,"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"]} 09:48:47.419 [debug] QUERY OK source="sources" db=0.1ms idle=979.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" = ?) [36] 09:48:47.419 [debug] QUERY OK source="settings" db=0.0ms idle=979.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:48:47.421 [debug] QUERY OK source="media_items" db=2.2ms idle=979.5ms 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")))) [36] 09:48:47.422 [debug] QUERY OK source="media_items" db=0.2ms idle=9.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 09:48:47.422 [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] 09:48:47.422 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:47.422 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:48:47.426 [debug] QUERY OK source="media_items" db=1.5ms idle=2.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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [36] 09:48:47.427 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:48:47.427 [debug] Current batch of media processed. Will check again in 1000ms 09:48:47.427 [debug] QUERY OK source="settings" db=0.1ms idle=5.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 [] 09:48:47.427 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:48:47.427 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 09:48:47.428 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/b2/05/b20585544fb575fcb5cc3753c6a9b6186b618c4fe9c65732433eae77fbd81e8f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/51/ae/51ae4ff3a40757a89bd765f44ebd6cbf6e659a0840e78a415c3dd2a06a99cfe8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:48:47.441 [debug] Current batch of media processed. Will check again in 1000ms 09:48:48.427 [debug] Current batch of media processed. Will check again in 1000ms 09:48:48.442 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1205, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", "id" => "tdr-144Ondo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tdr-144Ondo", "playlist_index" => 5, "timestamp" => 1776517299, "title" => "Is Artix Linux Just A Protest Distro?", "upload_date" => "20260418"} 09:48:48.442 [debug] QUERY OK source="sources" db=0.1ms idle=1016.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 (?)) [35] 09:48:48.442 [debug] QUERY OK source="sources" db=0.1ms idle=1015.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" = ?) [35] 09:48:48.445 [debug] QUERY OK source="media_items" db=2.7ms idle=1015.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 13:01:39Z], 35] 09:48:48.447 [debug] QUERY OK source="media_items" db=0.7ms idle=1018.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "9918dd6a-d6d1-4aad-b70e-734f07a58d00", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, false, false, 35, [], 98, ~U[2026-04-18 13:01:39Z], ~U[2026-04-30 14:48:48Z], ~U[2026-04-30 14:48:48Z], "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, 35, ~U[2026-04-18 13:01:39Z]] 09:48:48.447 [debug] QUERY OK source="sources" db=0.1ms idle=33.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" = ?) [35] 09:48:48.447 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.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] 09:48:48.447 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2752907] 09:48:48.448 [debug] Current batch of media processed. Will check again in 1000ms 09:48:49.428 [debug] Current batch of media processed. Will check again in 1000ms 09:48:49.448 [debug] Current batch of media processed. Will check again in 1000ms 09:48:50.430 [debug] Current batch of media processed. Will check again in 1000ms 09:48:50.450 [debug] Current batch of media processed. Will check again in 1000ms 09:48:51.431 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\n- The state of OpenClaw\n- Fixing OpenClaw's security issues\n- Real-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 315, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042300_I finally found a use case for OpenClaw….mp4", "id" => "FM5-R4VPArw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FM5-R4VPArw", "playlist_index" => 1, "timestamp" => 1776968799, "title" => "I finally found a use case for OpenClaw…", "upload_date" => "20260423"} 09:48:51.431 [debug] QUERY OK source="sources" db=0.1ms idle=1450.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 (?)) [36] 09:48:51.431 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [36] 09:48:51.433 [debug] QUERY OK source="media_items" db=1.4ms idle=1450.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 18:26:39Z], 36] 09:48:51.434 [debug] QUERY OK source="media_items" db=0.7ms idle=1017.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\n- The state of OpenClaw\n- Fixing OpenClaw's security issues\n- Real-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "I finally found a use case for OpenClaw…", "db84f696-ded7-41e3-ab2f-636e7009c8ed", "FM5-R4VPArw", 315, false, "https://www.youtube.com/watch?v=FM5-R4VPArw", 1, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042300_I finally found a use case for OpenClaw….mp4", false, false, false, 36, [], 98, ~U[2026-04-23 18:26:39Z], ~U[2026-04-30 14:48:51Z], ~U[2026-04-30 14:48:51Z], "Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\n- The state of OpenClaw\n- Fixing OpenClaw's security issues\n- Real-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "I finally found a use case for OpenClaw…", "FM5-R4VPArw", 315, false, "https://www.youtube.com/watch?v=FM5-R4VPArw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042300_I finally found a use case for OpenClaw….mp4", false, 36, ~U[2026-04-23 18:26:39Z]] 09:48:51.434 [debug] QUERY OK source="sources" db=0.1ms idle=17.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" = ?) [36] 09:48:51.435 [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] 09:48:51.435 [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 [2793692] 09:48:51.435 [debug] Current batch of media processed. Will check again in 1000ms 09:48:51.450 [debug] Current batch of media processed. Will check again in 1000ms 09:48:52.436 [debug] Current batch of media processed. Will check again in 1000ms 09:48:52.452 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 992, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", "id" => "Bh4cQJ5aTUg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "playlist_index" => 6, "timestamp" => 1775998818, "title" => "CuerdOS Is Not Just Another Distro! (Or Is It?)", "upload_date" => "20260412"} 09:48:52.452 [debug] QUERY OK source="sources" db=0.2ms idle=1018.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 (?)) [35] 09:48:52.453 [debug] QUERY OK source="sources" db=0.0ms idle=1018.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" = ?) [35] 09:48:52.456 [debug] QUERY OK source="media_items" db=2.9ms idle=1017.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:18Z], 35] 09:48:52.457 [debug] QUERY OK source="media_items" db=0.9ms idle=1020.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "2d4a6894-3ba9-4c97-81af-2b31a50683c7", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, false, false, 35, [], 98, ~U[2026-04-12 13:00:18Z], ~U[2026-04-30 14:48:52Z], ~U[2026-04-30 14:48:52Z], "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, 35, ~U[2026-04-12 13:00:18Z]] 09:48:52.457 [debug] QUERY OK source="sources" db=0.1ms idle=38.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" = ?) [35] 09:48:52.458 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:48:52.458 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2712339] 09:48:52.458 [debug] Current batch of media processed. Will check again in 1000ms 09:48:53.437 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\n- What is Claude Design\n- Claude Design vs Figma vs Adobe\n- Claude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 312, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042100_Claude just got another superpower....mp4", "id" => "jeA-KBv0b68", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jeA-KBv0b68", "playlist_index" => 2, "timestamp" => 1776792943, "title" => "Claude just got another superpower...", "upload_date" => "20260421"} 09:48:53.437 [debug] QUERY OK source="sources" db=0.1ms idle=979.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 (?)) [36] 09:48:53.437 [debug] QUERY OK source="sources" db=0.0ms idle=979.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" = ?) [36] 09:48:53.439 [debug] QUERY OK source="media_items" db=1.3ms idle=979.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:35:43Z], 36] 09:48:53.442 [debug] QUERY OK source="media_items" db=2.6ms idle=980.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\n- What is Claude Design\n- Claude Design vs Figma vs Adobe\n- Claude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude just got another superpower...", "9451c93b-06e8-4b4d-976c-823a9fe99dd1", "jeA-KBv0b68", 312, false, "https://www.youtube.com/watch?v=jeA-KBv0b68", 2, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042100_Claude just got another superpower....mp4", false, false, false, 36, [], 98, ~U[2026-04-21 17:35:43Z], ~U[2026-04-30 14:48:53Z], ~U[2026-04-30 14:48:53Z], "Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\n- What is Claude Design\n- Claude Design vs Figma vs Adobe\n- Claude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude just got another superpower...", "jeA-KBv0b68", 312, false, "https://www.youtube.com/watch?v=jeA-KBv0b68", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042100_Claude just got another superpower....mp4", false, 36, ~U[2026-04-21 17:35:43Z]] 09:48:53.442 [debug] QUERY OK source="sources" db=0.1ms idle=21.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" = ?) [36] 09:48:53.443 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:48:53.443 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2778326] 09:48:53.443 [debug] Current batch of media processed. Will check again in 1000ms 09:48:53.459 [debug] Current batch of media processed. Will check again in 1000ms 09:48:54.444 [debug] Current batch of media processed. Will check again in 1000ms 09:48:54.460 [debug] Current batch of media processed. Will check again in 1000ms 09:48:55.445 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\n- Wordpress plugin hack \n- EmDash\n\n📚 Resources\n- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/accordion-and-accordion-slider/accordion-and-accordion-slider-146-injected-backdoor\n- https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 316, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041600_Millions of WordPress sites just got hacked... again.mp4", "id" => "piah4fV_o2Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=piah4fV_o2Q", "playlist_index" => 3, "timestamp" => 1776353341, "title" => "Millions of WordPress sites just got hacked... again", "upload_date" => "20260416"} 09:48:55.445 [debug] QUERY OK source="sources" db=0.1ms idle=464.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 (?)) [36] 09:48:55.446 [debug] QUERY OK source="sources" db=0.2ms idle=464.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" = ?) [36] 09:48:55.447 [debug] QUERY OK source="media_items" db=1.4ms idle=465.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 15:29:01Z], 36] 09:48:55.449 [debug] QUERY OK source="media_items" db=1.5ms idle=466.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\n- Wordpress plugin hack \n- EmDash\n\n📚 Resources\n- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/accordion-and-accordion-slider/accordion-and-accordion-slider-146-injected-backdoor\n- https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of WordPress sites just got hacked... again", "9bde33e8-0c83-4756-8de5-b8c07a4147f4", "piah4fV_o2Q", 316, false, "https://www.youtube.com/watch?v=piah4fV_o2Q", 3, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041600_Millions of WordPress sites just got hacked... again.mp4", false, false, false, 36, [], 98, ~U[2026-04-16 15:29:01Z], ~U[2026-04-30 14:48:55Z], ~U[2026-04-30 14:48:55Z], "Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\n- Wordpress plugin hack \n- EmDash\n\n📚 Resources\n- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/accordion-and-accordion-slider/accordion-and-accordion-slider-146-injected-backdoor\n- https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of WordPress sites just got hacked... again", "piah4fV_o2Q", 316, false, "https://www.youtube.com/watch?v=piah4fV_o2Q", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041600_Millions of WordPress sites just got hacked... again.mp4", false, 36, ~U[2026-04-16 15:29:01Z]] 09:48:55.449 [debug] QUERY OK source="sources" db=0.1ms idle=25.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" = ?) [36] 09:48:55.450 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:48:55.450 [debug] QUERY OK source="media_items" db=0.2ms 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 [2739578] 09:48:55.450 [debug] Current batch of media processed. Will check again in 1000ms 09:48:55.461 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 513, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", "id" => "soN2EVOh1O8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=soN2EVOh1O8", "playlist_index" => 7, "timestamp" => 1775739705, "title" => "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "upload_date" => "20260409"} 09:48:55.461 [debug] QUERY OK source="sources" db=0.4ms idle=13.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 (?)) [35] 09:48:55.462 [debug] QUERY OK source="sources" db=0.1ms idle=12.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" = ?) [35] 09:48:55.464 [debug] QUERY OK source="media_items" db=2.6ms idle=12.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:01:45Z], 35] 09:48:55.466 [debug] QUERY OK source="media_items" db=0.8ms idle=14.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "f5b3931d-fcd5-40f4-babb-bfb8000cb995", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, false, false, 35, [], 98, ~U[2026-04-09 13:01:45Z], ~U[2026-04-30 14:48:55Z], ~U[2026-04-30 14:48:55Z], "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, 35, ~U[2026-04-09 13:01:45Z]] 09:48:55.466 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 09:48:55.466 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:48:55.467 [debug] QUERY OK source="media_items" db=0.2ms 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 [2688265] 09:48:55.467 [debug] Current batch of media processed. Will check again in 1000ms 09:48:56.451 [debug] Current batch of media processed. Will check again in 1000ms 09:48:56.468 [debug] Current batch of media processed. Will check again in 1000ms 09:48:57.452 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/research/26/c/axios-npm-package-compromised.html\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 336, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041000_Claude Mythos is too dangerous for public consumption....mp4", "id" => "d3Qq-rkp_to", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d3Qq-rkp_to", "playlist_index" => 4, "timestamp" => 1775849375, "title" => "Claude Mythos is too dangerous for public consumption...", "upload_date" => "20260410"} 09:48:57.452 [debug] QUERY OK source="sources" db=0.1ms idle=471.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 (?)) [36] 09:48:57.452 [debug] QUERY OK source="sources" db=0.1ms idle=471.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" = ?) [36] 09:48:57.454 [debug] QUERY OK source="media_items" db=1.4ms idle=471.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 19:29:35Z], 36] 09:48:57.455 [debug] QUERY OK source="media_items" db=0.7ms idle=473.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/research/26/c/axios-npm-package-compromised.html\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude Mythos is too dangerous for public consumption...", "93fc33eb-fbb2-4140-b363-330c5dc5c905", "d3Qq-rkp_to", 336, false, "https://www.youtube.com/watch?v=d3Qq-rkp_to", 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041000_Claude Mythos is too dangerous for public consumption....mp4", false, false, false, 36, [], 98, ~U[2026-04-10 19:29:35Z], ~U[2026-04-30 14:48:57Z], ~U[2026-04-30 14:48:57Z], "Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/research/26/c/axios-npm-package-compromised.html\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude Mythos is too dangerous for public consumption...", "d3Qq-rkp_to", 336, false, "https://www.youtube.com/watch?v=d3Qq-rkp_to", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041000_Claude Mythos is too dangerous for public consumption....mp4", false, 36, ~U[2026-04-10 19:29:35Z]] 09:48:57.455 [debug] QUERY OK source="sources" db=0.1ms idle=29.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" = ?) [36] 09:48:57.455 [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] 09:48:57.456 [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 [2699183] 09:48:57.456 [debug] Current batch of media processed. Will check again in 1000ms 09:48:57.469 [debug] Current batch of media processed. Will check again in 1000ms 09:48:58.457 [debug] Current batch of media processed. Will check again in 1000ms 09:48:58.470 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 432, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", "id" => "GPcM_MKIfXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GPcM_MKIfXs", "playlist_index" => 8, "timestamp" => 1775480427, "title" => "Has A.I. Made The Web Obsolete?", "upload_date" => "20260406"} 09:48:58.470 [debug] QUERY OK source="sources" db=0.2ms idle=1014.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 (?)) [35] 09:48:58.470 [debug] QUERY OK source="sources" db=0.1ms idle=1015.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" = ?) [35] 09:48:58.473 [debug] QUERY OK source="media_items" db=2.7ms idle=1015.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 13:00:27Z], 35] 09:48:58.475 [debug] QUERY OK source="media_items" db=0.8ms idle=1017.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "b55bf758-dff3-4079-9ae0-63737cc7564e", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, false, false, 35, [], 98, ~U[2026-04-06 13:00:27Z], ~U[2026-04-30 14:48:58Z], ~U[2026-04-30 14:48:58Z], "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, 35, ~U[2026-04-06 13:00:27Z]] 09:48:58.475 [debug] QUERY OK source="sources" db=0.1ms idle=47.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" = ?) [35] 09:48:58.475 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:48:58.476 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2662359] 09:48:58.476 [debug] Current batch of media processed. Will check again in 1000ms 09:48:59.458 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "CodeRabbit CLI can fix your agent’s code before it ever\u00A0opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding #programming #programming\n\n🔖 Topics Covered\n- How Gemma 4 works\n- Gemma 4 benchmarks\n- TurboQuant\n\n📌 Resources\n- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-gemma-4\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 315, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040800_Google just casually disrupted the open-source AI narrative….mp4", "id" => "-01ZCTt-CJw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-01ZCTt-CJw", "playlist_index" => 5, "timestamp" => 1775674810, "title" => "Google just casually disrupted the open-source AI narrative…", "upload_date" => "20260408"} 09:48:59.458 [debug] QUERY OK source="sources" db=0.2ms idle=983.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 (?)) [36] 09:48:59.458 [debug] QUERY OK source="sources" db=0.1ms idle=983.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" = ?) [36] 09:48:59.460 [debug] QUERY OK source="media_items" db=1.4ms idle=983.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 19:00:10Z], 36] 09:48:59.461 [debug] QUERY OK source="media_items" db=0.7ms idle=984.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CodeRabbit CLI can fix your agent’s code before it ever\u00A0opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding #programming #programming\n\n🔖 Topics Covered\n- How Gemma 4 works\n- Gemma 4 benchmarks\n- TurboQuant\n\n📌 Resources\n- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-gemma-4\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just casually disrupted the open-source AI narrative…", "63652d07-4969-48aa-a875-0cd58036ce68", "-01ZCTt-CJw", 315, false, "https://www.youtube.com/watch?v=-01ZCTt-CJw", 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040800_Google just casually disrupted the open-source AI narrative….mp4", false, false, false, 36, [], 98, ~U[2026-04-08 19:00:10Z], ~U[2026-04-30 14:48:59Z], ~U[2026-04-30 14:48:59Z], "CodeRabbit CLI can fix your agent’s code before it ever\u00A0opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding #programming #programming\n\n🔖 Topics Covered\n- How Gemma 4 works\n- Gemma 4 benchmarks\n- TurboQuant\n\n📌 Resources\n- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-gemma-4\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just casually disrupted the open-source AI narrative…", "-01ZCTt-CJw", 315, false, "https://www.youtube.com/watch?v=-01ZCTt-CJw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040800_Google just casually disrupted the open-source AI narrative….mp4", false, 36, ~U[2026-04-08 19:00:10Z]] 09:48:59.461 [debug] QUERY OK source="sources" db=0.1ms idle=32.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" = ?) [36] 09:48:59.462 [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] 09:48:59.462 [debug] QUERY OK source="media_items" db=0.1ms 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 [2682752] 09:48:59.462 [debug] Current batch of media processed. Will check again in 1000ms 09:48:59.476 [debug] Current batch of media processed. Will check again in 1000ms 09:49:00.463 [debug] Current batch of media processed. Will check again in 1000ms 09:49:00.478 [debug] Current batch of media processed. Will check again in 1000ms 09:49:00.888 [info] {"source":"oban","duration":137,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:49:01.464 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 302, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040600_Cursor ditches VS Code, but not everyone is happy....mp4", "id" => "JSuS-zXMVwE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JSuS-zXMVwE", "playlist_index" => 6, "timestamp" => 1775500677, "title" => "Cursor ditches VS Code, but not everyone is happy...", "upload_date" => "20260406"} 09:49:01.465 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [36] 09:49:01.465 [debug] QUERY OK source="sources" db=0.1ms idle=484.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" = ?) [36] 09:49:01.466 [debug] QUERY OK source="media_items" db=1.3ms idle=484.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 18:37:57Z], 36] 09:49:01.468 [debug] QUERY OK source="media_items" db=1.3ms idle=485.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cursor ditches VS Code, but not everyone is happy...", "9cabb175-6bf5-42a0-95a1-47270f497a6f", "JSuS-zXMVwE", 302, false, "https://www.youtube.com/watch?v=JSuS-zXMVwE", 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040600_Cursor ditches VS Code, but not everyone is happy....mp4", false, false, false, 36, [], 98, ~U[2026-04-06 18:37:57Z], ~U[2026-04-30 14:49:01Z], ~U[2026-04-30 14:49:01Z], "Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cursor ditches VS Code, but not everyone is happy...", "JSuS-zXMVwE", 302, false, "https://www.youtube.com/watch?v=JSuS-zXMVwE", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040600_Cursor ditches VS Code, but not everyone is happy....mp4", false, 36, ~U[2026-04-06 18:37:57Z]] 09:49:01.468 [debug] QUERY OK source="sources" db=0.1ms idle=36.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" = ?) [36] 09:49:01.469 [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] 09:49:01.469 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2665936] 09:49:01.469 [debug] Current batch of media processed. Will check again in 1000ms 09:49:01.479 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 396, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", "id" => "WZMf-fC45ak", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WZMf-fC45ak", "playlist_index" => 9, "timestamp" => 1775221262, "title" => "'date' - print or set date and time - Video Man Pages", "upload_date" => "20260403"} 09:49:01.480 [debug] QUERY OK source="sources" db=0.5ms idle=12.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 (?)) [35] 09:49:01.480 [debug] QUERY OK source="sources" db=0.1ms idle=11.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" = ?) [35] 09:49:01.483 [debug] QUERY OK source="media_items" db=2.6ms idle=11.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 13:01:02Z], 35] 09:49:01.484 [debug] QUERY OK source="media_items" db=1.0ms idle=14.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "d636f4ed-f6fc-47cf-b4fa-2c01904d795e", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-04-03 13:01:02Z], ~U[2026-04-30 14:49:01Z], ~U[2026-04-30 14:49:01Z], "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, 35, ~U[2026-04-03 13:01:02Z]] 09:49:01.485 [debug] QUERY OK source="sources" db=0.1ms idle=15.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" = ?) [35] 09:49:01.485 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:49:01.485 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2639557] 09:49:01.485 [debug] Current batch of media processed. Will check again in 1000ms 09:49:02.470 [debug] Current batch of media processed. Will check again in 1000ms 09:49:02.485 [debug] Current batch of media processed. Will check again in 1000ms 09:49:03.471 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\n- Who is Cheng Lou?\n- Intro to Pretext\n- What makes dynamic text rendering so hard?\n- Pretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 336, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040200_He just crawled through hell to fix the browser….mp4", "id" => "vd14EElCRvs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vd14EElCRvs", "playlist_index" => 7, "timestamp" => 1775157518, "title" => "He just crawled through hell to fix the browser…", "upload_date" => "20260402"} 09:49:03.471 [debug] QUERY OK source="sources" db=0.1ms idle=490.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 (?)) [36] 09:49:03.472 [debug] QUERY OK source="sources" db=0.1ms idle=491.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" = ?) [36] 09:49:03.473 [debug] QUERY OK source="media_items" db=1.4ms idle=491.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 19:18:38Z], 36] 09:49:03.475 [debug] QUERY OK source="media_items" db=0.8ms idle=493.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\n- Who is Cheng Lou?\n- Intro to Pretext\n- What makes dynamic text rendering so hard?\n- Pretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "He just crawled through hell to fix the browser…", "57e627e1-cf0b-4fb3-bd52-5964d76b7c29", "vd14EElCRvs", 336, false, "https://www.youtube.com/watch?v=vd14EElCRvs", 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040200_He just crawled through hell to fix the browser….mp4", false, false, false, 36, [], 98, ~U[2026-04-02 19:18:38Z], ~U[2026-04-30 14:49:03Z], ~U[2026-04-30 14:49:03Z], "Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\n- Who is Cheng Lou?\n- Intro to Pretext\n- What makes dynamic text rendering so hard?\n- Pretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "He just crawled through hell to fix the browser…", "vd14EElCRvs", 336, false, "https://www.youtube.com/watch?v=vd14EElCRvs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040200_He just crawled through hell to fix the browser….mp4", false, 36, ~U[2026-04-02 19:18:38Z]] 09:49:03.475 [debug] QUERY OK source="sources" db=0.1ms idle=38.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" = ?) [36] 09:49:03.475 [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] 09:49:03.476 [debug] QUERY OK source="media_items" db=0.1ms idle=3.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 [2634129] 09:49:03.476 [debug] Current batch of media processed. Will check again in 1000ms 09:49:03.487 [debug] Current batch of media processed. Will check again in 1000ms 09:49:04.476 [debug] Current batch of media processed. Will check again in 1000ms 09:49:04.488 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 226, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", "id" => "G9bWGPlcZmI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=G9bWGPlcZmI", "playlist_index" => 10, "timestamp" => 1775142909, "title" => "'cal' - display a calendar - Video Man Pages", "upload_date" => "20260402"} 09:49:04.488 [debug] QUERY OK source="sources" db=0.2ms idle=1013.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 (?)) [35] 09:49:04.488 [debug] QUERY OK source="sources" db=0.1ms idle=1013.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" = ?) [35] 09:49:04.491 [debug] QUERY OK source="media_items" db=2.7ms idle=1013.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 15:15:09Z], 35] 09:49:04.493 [debug] QUERY OK source="media_items" db=0.9ms idle=1016.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "51695a2a-e08c-4d93-adc6-06ba993eebbe", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, false, false, 35, [], 97, ~U[2026-04-02 15:15:09Z], ~U[2026-04-30 14:49:04Z], ~U[2026-04-30 14:49:04Z], "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, 35, ~U[2026-04-02 15:15:09Z]] 09:49:04.493 [debug] QUERY OK source="sources" db=0.1ms idle=55.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" = ?) [35] 09:49:04.493 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:49:04.494 [debug] QUERY OK source="media_items" db=0.1ms 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 [2632289] 09:49:04.494 [debug] Current batch of media processed. Will check again in 1000ms 09:49:05.478 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's in the leak?\n- Unreleased features\n- Undercover Mode\n- Frustration Detector\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 442, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040100_Tragic mistake... Anthropic leaks Claude’s source code.mp4", "id" => "mBHRPeg8zPU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mBHRPeg8zPU", "playlist_index" => 8, "timestamp" => 1775064425, "title" => "Tragic mistake... Anthropic leaks Claude’s source code", "upload_date" => "20260401"} 09:49:05.478 [debug] QUERY OK source="sources" db=0.1ms idle=985.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 (?)) [36] 09:49:05.478 [debug] QUERY OK source="sources" db=0.0ms idle=985.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" = ?) [36] 09:49:05.480 [debug] QUERY OK source="media_items" db=1.3ms idle=985.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 17:27:05Z], 36] 09:49:05.481 [debug] QUERY OK source="media_items" db=0.6ms idle=986.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's in the leak?\n- Unreleased features\n- Undercover Mode\n- Frustration Detector\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tragic mistake... Anthropic leaks Claude’s source code", "c24d92d0-74be-4fa1-8e16-77837b77179b", "mBHRPeg8zPU", 442, false, "https://www.youtube.com/watch?v=mBHRPeg8zPU", 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040100_Tragic mistake... Anthropic leaks Claude’s source code.mp4", false, false, false, 36, [], 98, ~U[2026-04-01 17:27:05Z], ~U[2026-04-30 14:49:05Z], ~U[2026-04-30 14:49:05Z], "Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's in the leak?\n- Unreleased features\n- Undercover Mode\n- Frustration Detector\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tragic mistake... Anthropic leaks Claude’s source code", "mBHRPeg8zPU", 442, false, "https://www.youtube.com/watch?v=mBHRPeg8zPU", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040100_Tragic mistake... Anthropic leaks Claude’s source code.mp4", false, 36, ~U[2026-04-01 17:27:05Z]] 09:49:05.481 [debug] QUERY OK source="sources" db=0.1ms idle=41.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" = ?) [36] 09:49:05.481 [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] 09:49:05.482 [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 [2626332] 09:49:05.482 [debug] Current batch of media processed. Will check again in 1000ms 09:49:05.495 [debug] Current batch of media processed. Will check again in 1000ms 09:49:06.483 [debug] Current batch of media processed. Will check again in 1000ms 09:49:06.496 [debug] Current batch of media processed. Will check again in 1000ms 09:49:06.567 [info] {"source":"oban","duration":3237,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:07.484 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library with over 100 million downloads on npm. But this wasn't your average RAT - let's take a look at how this highly sophisticated attack was pulled off and what to do if you're compromised.\n\n#coding #programming #hack \n\nℹ️ More Info:\n- https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\n\n🔖 Topics Covered\n- What is Axios\n- Axios RAT attack\n- What to do if you're compromised\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 298, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e033100_Millions of JS devs just got penetrated by a RAT….mp4", "id" => "o7NYXvYohYk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o7NYXvYohYk", "playlist_index" => 9, "timestamp" => 1774983520, "title" => "Millions of JS devs just got penetrated by a RAT…", "upload_date" => "20260331"} 09:49:07.484 [debug] QUERY OK source="sources" db=0.2ms idle=917.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 (?)) [36] 09:49:07.484 [debug] QUERY OK source="sources" db=0.1ms idle=503.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" = ?) [36] 09:49:07.486 [debug] QUERY OK source="media_items" db=1.4ms idle=504.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 18:58:40Z], 36] 09:49:07.487 [debug] QUERY OK source="media_items" db=0.8ms idle=505.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library with over 100 million downloads on npm. But this wasn't your average RAT - let's take a look at how this highly sophisticated attack was pulled off and what to do if you're compromised.\n\n#coding #programming #hack \n\nℹ️ More Info:\n- https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\n\n🔖 Topics Covered\n- What is Axios\n- Axios RAT attack\n- What to do if you're compromised\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of JS devs just got penetrated by a RAT…", "90bf5fe0-3092-4568-b577-e70838099537", "o7NYXvYohYk", 298, false, "https://www.youtube.com/watch?v=o7NYXvYohYk", 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e033100_Millions of JS devs just got penetrated by a RAT….mp4", false, false, false, 36, [], 98, ~U[2026-03-31 18:58:40Z], ~U[2026-04-30 14:49:07Z], ~U[2026-04-30 14:49:07Z], "Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library with over 100 million downloads on npm. But this wasn't your average RAT - let's take a look at how this highly sophisticated attack was pulled off and what to do if you're compromised.\n\n#coding #programming #hack \n\nℹ️ More Info:\n- https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\n\n🔖 Topics Covered\n- What is Axios\n- Axios RAT attack\n- What to do if you're compromised\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of JS devs just got penetrated by a RAT…", "o7NYXvYohYk", 298, false, "https://www.youtube.com/watch?v=o7NYXvYohYk", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e033100_Millions of JS devs just got penetrated by a RAT….mp4", false, 36, ~U[2026-03-31 18:58:40Z]] 09:49:07.488 [debug] QUERY OK source="sources" db=0.1ms idle=45.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" = ?) [36] 09:49:07.488 [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] 09:49:07.488 [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 [2618417] 09:49:07.488 [debug] Current batch of media processed. Will check again in 1000ms 09:49:07.497 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 696, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", "id" => "4am_n25wOuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4am_n25wOuI", "playlist_index" => 11, "timestamp" => 1774875606, "title" => "Fuzzel Is A Run Launcher For Wayland Desktops", "upload_date" => "20260330"} 09:49:07.497 [debug] QUERY OK source="sources" db=0.3ms idle=10.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 (?)) [35] 09:49:07.498 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 09:49:07.501 [debug] QUERY OK source="media_items" db=2.8ms idle=10.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 13:00:06Z], 35] 09:49:07.502 [debug] QUERY OK source="media_items" db=0.8ms idle=12.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "a9b27365-62a0-43a4-a984-4e31fef876a4", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, false, false, 35, [], 98, ~U[2026-03-30 13:00:06Z], ~U[2026-04-30 14:49:07Z], ~U[2026-04-30 14:49:07Z], "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, 35, ~U[2026-03-30 13:00:06Z]] 09:49:07.502 [debug] QUERY OK source="sources" db=0.1ms idle=13.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" = ?) [35] 09:49:07.502 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:49:07.503 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2608494] 09:49:07.503 [debug] Current batch of media processed. Will check again in 1000ms 09:49:08.490 [debug] Current batch of media processed. Will check again in 1000ms 09:49:08.504 [debug] Current batch of media processed. Will check again in 1000ms 09:49:09.491 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But is it actually a gamechanger, or just more slop hype? Let's run it.\n\n#coding #ai #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 300, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032600_Anthropic just released the real Claude Bot....mp4", "id" => "wfeiCZK0mNs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wfeiCZK0mNs", "playlist_index" => 10, "timestamp" => 1774548711, "title" => "Anthropic just released the real Claude Bot...", "upload_date" => "20260326"} 09:49:09.491 [debug] QUERY OK source="sources" db=0.1ms idle=510.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 (?)) [36] 09:49:09.492 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:09.493 [debug] QUERY OK source="media_items" db=1.3ms idle=511.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 18:11:51Z], 36] 09:49:09.494 [debug] QUERY OK source="media_items" db=0.6ms idle=512.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But is it actually a gamechanger, or just more slop hype? Let's run it.\n\n#coding #ai #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Anthropic just released the real Claude Bot...", "6fe700fd-8ae2-4238-b5d6-8cc6545f85ce", "wfeiCZK0mNs", 300, false, "https://www.youtube.com/watch?v=wfeiCZK0mNs", 10, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032600_Anthropic just released the real Claude Bot....mp4", false, false, false, 36, [], 98, ~U[2026-03-26 18:11:51Z], ~U[2026-04-30 14:49:09Z], ~U[2026-04-30 14:49:09Z], "Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But is it actually a gamechanger, or just more slop hype? Let's run it.\n\n#coding #ai #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Anthropic just released the real Claude Bot...", "wfeiCZK0mNs", 300, false, "https://www.youtube.com/watch?v=wfeiCZK0mNs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032600_Anthropic just released the real Claude Bot....mp4", false, 36, ~U[2026-03-26 18:11:51Z]] 09:49:09.495 [debug] QUERY OK source="sources" db=0.1ms idle=49.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" = ?) [36] 09:49:09.495 [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] 09:49:09.495 [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 [2580036] 09:49:09.495 [debug] Current batch of media processed. Will check again in 1000ms 09:49:09.505 [debug] Current batch of media processed. Will check again in 1000ms 09:49:10.496 [debug] Current batch of media processed. Will check again in 1000ms 09:49:10.506 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1579, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", "id" => "K5J4LG4detc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=K5J4LG4detc", "playlist_index" => 12, "timestamp" => 1774615549, "title" => "Installation and First Look at LinuxHub Prime", "upload_date" => "20260327"} 09:49:10.506 [debug] QUERY OK source="sources" db=0.2ms idle=1011.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 (?)) [35] 09:49:10.506 [debug] QUERY OK source="sources" db=0.1ms idle=1011.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" = ?) [35] 09:49:10.510 [debug] QUERY OK source="media_items" db=3.1ms idle=1011.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:45:49Z], 35] 09:49:10.511 [debug] QUERY OK source="media_items" db=0.9ms idle=1014.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "34135ae4-9874-46ab-9a94-d6c47af2ef24", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, false, false, 35, [], 98, ~U[2026-03-27 12:45:49Z], ~U[2026-04-30 14:49:10Z], ~U[2026-04-30 14:49:10Z], "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, 35, ~U[2026-03-27 12:45:49Z]] 09:49:10.511 [debug] QUERY OK source="sources" db=0.1ms idle=64.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" = ?) [35] 09:49:10.512 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:49:10.512 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2585140] 09:49:10.512 [debug] Current batch of media processed. Will check again in 1000ms 09:49:11.497 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven military ops platform powered by companies like Palantir and OpenAI. But what else is it running under the hood?\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- What is the Maven Smart System?\n- Claude vs Pete Hegseth\n- How does the MSS actually work?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 321, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032400_Tech bros optimized war… and it’s working.mp4", "id" => "nxwkn9Dt9-I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nxwkn9Dt9-I", "playlist_index" => 11, "timestamp" => 1774376547, "title" => "Tech bros optimized war… and it’s working", "upload_date" => "20260324"} 09:49:11.497 [debug] QUERY OK source="sources" db=0.2ms idle=986.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 (?)) [36] 09:49:11.498 [debug] QUERY OK source="sources" db=0.1ms idle=986.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" = ?) [36] 09:49:11.499 [debug] QUERY OK source="media_items" db=1.3ms idle=986.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 18:22:27Z], 36] 09:49:11.500 [debug] QUERY OK source="media_items" db=0.8ms idle=987.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven military ops platform powered by companies like Palantir and OpenAI. But what else is it running under the hood?\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- What is the Maven Smart System?\n- Claude vs Pete Hegseth\n- How does the MSS actually work?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tech bros optimized war… and it’s working", "88482c9a-56fe-49f6-bcb4-17769b975ce1", "nxwkn9Dt9-I", 321, false, "https://www.youtube.com/watch?v=nxwkn9Dt9-I", 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032400_Tech bros optimized war… and it’s working.mp4", false, false, false, 36, [], 98, ~U[2026-03-24 18:22:27Z], ~U[2026-04-30 14:49:11Z], ~U[2026-04-30 14:49:11Z], "Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven military ops platform powered by companies like Palantir and OpenAI. But what else is it running under the hood?\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- What is the Maven Smart System?\n- Claude vs Pete Hegseth\n- How does the MSS actually work?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tech bros optimized war… and it’s working", "nxwkn9Dt9-I", 321, false, "https://www.youtube.com/watch?v=nxwkn9Dt9-I", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032400_Tech bros optimized war… and it’s working.mp4", false, 36, ~U[2026-03-24 18:22:27Z]] 09:49:11.501 [debug] QUERY OK source="sources" db=0.2ms idle=52.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" = ?) [36] 09:49:11.501 [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] 09:49:11.502 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2564265] 09:49:11.502 [debug] Current batch of media processed. Will check again in 1000ms 09:49:11.512 [debug] Current batch of media processed. Will check again in 1000ms 09:49:12.503 [debug] Current batch of media processed. Will check again in 1000ms 09:49:12.513 [debug] Current batch of media processed. Will check again in 1000ms 09:49:13.504 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing users to verify their age at the operating system level on all internet-enabled devices. But one brave Linux script is daring to fight back against the mighty surveillance state…\n\n#linux #coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 289, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032000_This new Linux distro is breaking the law, by design….mp4", "id" => "nkY_s9HpL9M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nkY_s9HpL9M", "playlist_index" => 12, "timestamp" => 1774035144, "title" => "This new Linux distro is breaking the law, by design…", "upload_date" => "20260320"} 09:49:13.505 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [36] 09:49:13.505 [debug] QUERY OK source="sources" db=0.1ms idle=524.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" = ?) [36] 09:49:13.507 [debug] QUERY OK source="media_items" db=1.3ms idle=524.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-20 19:32:24Z], 36] 09:49:13.515 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 962, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", "id" => "onw826NsgWQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=onw826NsgWQ", "playlist_index" => 13, "timestamp" => 1774357289, "title" => "Create Beautiful Websites With Hugo", "upload_date" => "20260324"} 09:49:13.515 [debug] QUERY OK source="sources" db=0.3ms idle=63.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 (?)) [35] 09:49:13.516 [debug] QUERY OK source="sources" db=0.1ms idle=10.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" = ?) [35] 09:49:13.519 [debug] QUERY OK source="media_items" db=2.8ms idle=10.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 13:01:29Z], 35] 09:49:13.520 [debug] QUERY OK source="media_items" db=1.1ms idle=11.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "028bc776-96c0-4df2-be12-ddad3af15930", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, false, false, 35, [], 98, ~U[2026-03-24 13:01:29Z], ~U[2026-04-30 14:49:13Z], ~U[2026-04-30 14:49:13Z], "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, 35, ~U[2026-03-24 13:01:29Z]] 09:49:13.520 [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" = ?) [35] 09:49:13.521 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:49:13.524 [debug] QUERY OK source="media_items" db=16.6ms idle=526.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing users to verify their age at the operating system level on all internet-enabled devices. But one brave Linux script is daring to fight back against the mighty surveillance state…\n\n#linux #coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "This new Linux distro is breaking the law, by design…", "e920b663-7fd1-4ecb-9157-e6c9febee358", "nkY_s9HpL9M", 289, false, "https://www.youtube.com/watch?v=nkY_s9HpL9M", 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032000_This new Linux distro is breaking the law, by design….mp4", false, false, false, 36, [], 98, ~U[2026-03-20 19:32:24Z], ~U[2026-04-30 14:49:13Z], ~U[2026-04-30 14:49:13Z], "CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing users to verify their age at the operating system level on all internet-enabled devices. But one brave Linux script is daring to fight back against the mighty surveillance state…\n\n#linux #coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "This new Linux distro is breaking the law, by design…", "nkY_s9HpL9M", 289, false, "https://www.youtube.com/watch?v=nkY_s9HpL9M", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032000_This new Linux distro is breaking the law, by design….mp4", false, 36, ~U[2026-03-20 19:32:24Z]] 09:49:13.525 [debug] QUERY OK source="sources" db=0.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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:13.525 [debug] QUERY OK source="media_items" db=1.2ms idle=5.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 [2562055] 09:49:13.525 [debug] Current batch of media processed. Will check again in 1000ms 09:49:13.525 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.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] 09:49:13.526 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2533058] 09:49:13.526 [debug] Current batch of media processed. Will check again in 1000ms 09:49:14.526 [debug] Current batch of media processed. Will check again in 1000ms 09:49:14.526 [debug] Current batch of media processed. Will check again in 1000ms 09:49:15.527 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 935, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", "id" => "NebhEVR44Jc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NebhEVR44Jc", "playlist_index" => 14, "timestamp" => 1774098044, "title" => "Taking Notes With Emacs Org Mode (It's Easy!)", "upload_date" => "20260321"} 09:49:15.527 [debug] QUERY OK source="sources" db=0.2ms idle=546.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 (?)) [35] 09:49:15.527 [debug] Current batch of media processed. Will check again in 1000ms 09:49:15.528 [debug] QUERY OK source="sources" db=0.1ms idle=546.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" = ?) [35] 09:49:15.531 [debug] QUERY OK source="media_items" db=2.9ms idle=547.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 13:00:44Z], 35] 09:49:15.541 [debug] QUERY OK source="media_items" db=10.0ms idle=550.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "abfe11d1-716d-473f-ba54-439dfaf11a8c", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, false, false, 35, [], 98, ~U[2026-03-21 13:00:44Z], ~U[2026-04-30 14:49:15Z], ~U[2026-04-30 14:49:15Z], "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, 35, ~U[2026-03-21 13:00:44Z]] 09:49:15.542 [debug] QUERY OK source="sources" db=0.2ms idle=87.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" = ?) [35] 09:49:15.542 [debug] QUERY OK source="media_profiles" db=0.2ms idle=14.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] 09:49:15.542 [debug] QUERY OK source="media_items" db=0.1ms idle=14.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 [2538287] 09:49:15.542 [debug] Current batch of media processed. Will check again in 1000ms 09:49:16.529 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if it really is a gamechanger for UI/UX design.\n\n#coding #programming #ai \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 290, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031900_Google just changed the future of UI⧸UX design....mp4", "id" => "qaB5HF4ax9M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qaB5HF4ax9M", "playlist_index" => 13, "timestamp" => 1773948906, "title" => "Google just changed the future of UI/UX design...", "upload_date" => "20260319"} 09:49:16.530 [debug] QUERY OK source="sources" db=0.2ms idle=988.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 (?)) [36] 09:49:16.530 [debug] QUERY OK source="sources" db=0.1ms idle=988.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" = ?) [36] 09:49:16.531 [debug] QUERY OK source="media_items" db=1.3ms idle=988.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 19:35:06Z], 36] 09:49:16.536 [debug] QUERY OK source="media_items" db=4.6ms idle=989.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if it really is a gamechanger for UI/UX design.\n\n#coding #programming #ai \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just changed the future of UI/UX design...", "78af2bc7-2beb-4386-b8c4-e7184c0d339e", "qaB5HF4ax9M", 290, false, "https://www.youtube.com/watch?v=qaB5HF4ax9M", 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031900_Google just changed the future of UI⧸UX design....mp4", false, false, false, 36, [], 98, ~U[2026-03-19 19:35:06Z], ~U[2026-04-30 14:49:16Z], ~U[2026-04-30 14:49:16Z], "Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if it really is a gamechanger for UI/UX design.\n\n#coding #programming #ai \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just changed the future of UI/UX design...", "qaB5HF4ax9M", 290, false, "https://www.youtube.com/watch?v=qaB5HF4ax9M", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031900_Google just changed the future of UI⧸UX design....mp4", false, 36, ~U[2026-03-19 19:35:06Z]] 09:49:16.537 [debug] QUERY OK source="sources" db=0.1ms idle=80.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" = ?) [36] 09:49:16.537 [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] 09:49:16.537 [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 [2526130] 09:49:16.537 [debug] Current batch of media processed. Will check again in 1000ms 09:49:16.544 [debug] Current batch of media processed. Will check again in 1000ms 09:49:17.538 [debug] Current batch of media processed. Will check again in 1000ms 09:49:17.544 [debug] Current batch of media processed. Will check again in 1000ms 09:49:18.539 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back in 2012. But after raising $30m, that never happened. Let's take a look back in time to understand why.\n\n#coding #javascript #opensource \n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 308, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031800_How to burn $30m on a JavaScript framework....mp4", "id" => "ReAnFFqvCeA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ReAnFFqvCeA", "playlist_index" => 14, "timestamp" => 1773856618, "title" => "How to burn $30m on a JavaScript framework...", "upload_date" => "20260318"} 09:49:18.540 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=559.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 (?)) [36] 09:49:18.540 [debug] QUERY OK source="sources" db=0.1ms idle=559.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" = ?) [36] 09:49:18.542 [debug] QUERY OK source="media_items" db=1.3ms idle=560.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 17:56:58Z], 36] 09:49:18.543 [debug] QUERY OK source="media_items" db=0.7ms idle=561.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back in 2012. But after raising $30m, that never happened. Let's take a look back in time to understand why.\n\n#coding #javascript #opensource \n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How to burn $30m on a JavaScript framework...", "5f04aa3d-7d78-4bdc-b4c7-38f41155f1da", "ReAnFFqvCeA", 308, false, "https://www.youtube.com/watch?v=ReAnFFqvCeA", 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031800_How to burn $30m on a JavaScript framework....mp4", false, false, false, 36, [], 98, ~U[2026-03-18 17:56:58Z], ~U[2026-04-30 14:49:18Z], ~U[2026-04-30 14:49:18Z], "Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back in 2012. But after raising $30m, that never happened. Let's take a look back in time to understand why.\n\n#coding #javascript #opensource \n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How to burn $30m on a JavaScript framework...", "ReAnFFqvCeA", 308, false, "https://www.youtube.com/watch?v=ReAnFFqvCeA", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031800_How to burn $30m on a JavaScript framework....mp4", false, 36, ~U[2026-03-18 17:56:58Z]] 09:49:18.543 [debug] QUERY OK source="sources" db=0.2ms idle=84.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" = ?) [36] 09:49:18.544 [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] 09:49:18.544 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2517445] 09:49:18.544 [debug] Current batch of media processed. Will check again in 1000ms 09:49:18.546 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 645, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", "id" => "CPsMqjjsyhI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CPsMqjjsyhI", "playlist_index" => 15, "timestamp" => 1773838638, "title" => "CachyOS Dethrones Arch As Top Gaming Distro", "upload_date" => "20260318"} 09:49:18.546 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [35] 09:49:18.546 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:18.549 [debug] QUERY OK source="media_items" db=2.5ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 12:57:18Z], 35] 09:49:18.550 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "be16857e-4eea-431b-97ee-e6f0c738fbbc", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, false, false, 35, [], 98, ~U[2026-03-18 12:57:18Z], ~U[2026-04-30 14:49:18Z], ~U[2026-04-30 14:49:18Z], "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, 35, ~U[2026-03-18 12:57:18Z]] 09:49:18.550 [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" = ?) [35] 09:49:18.550 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:49:18.551 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2515554] 09:49:18.551 [debug] Current batch of media processed. Will check again in 1000ms 09:49:19.545 [debug] Current batch of media processed. Will check again in 1000ms 09:49:19.551 [debug] Current batch of media processed. Will check again in 1000ms 09:49:20.546 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard of that will help you whip your agents into shape and build highly effective slop pipelines.\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- Agency Agents\n- PropmtFoo\n- MicroFish\n- NanoChat\n- Impeccable\n- Heretic\n- OpenViking\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 374, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031200_7 new open source AI tools you need right now….mp4", "id" => "Xn-gtHDsaPY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Xn-gtHDsaPY", "playlist_index" => 15, "timestamp" => 1773337759, "title" => "7 new open source AI tools you need right now…", "upload_date" => "20260312"} 09:49:20.546 [debug] QUERY OK source="sources" db=0.1ms idle=565.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 (?)) [36] 09:49:20.546 [debug] QUERY OK source="sources" db=0.1ms idle=565.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" = ?) [36] 09:49:20.548 [debug] QUERY OK source="media_items" db=1.4ms idle=565.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 17:49:19Z], 36] 09:49:20.551 [debug] QUERY OK source="media_items" db=2.4ms idle=567.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard of that will help you whip your agents into shape and build highly effective slop pipelines.\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- Agency Agents\n- PropmtFoo\n- MicroFish\n- NanoChat\n- Impeccable\n- Heretic\n- OpenViking\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "7 new open source AI tools you need right now…", "7df8ca3a-d816-4c5b-8e2a-60353b28e4f8", "Xn-gtHDsaPY", 374, false, "https://www.youtube.com/watch?v=Xn-gtHDsaPY", 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031200_7 new open source AI tools you need right now….mp4", false, false, false, 36, [], 98, ~U[2026-03-12 17:49:19Z], ~U[2026-04-30 14:49:20Z], ~U[2026-04-30 14:49:20Z], "Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard of that will help you whip your agents into shape and build highly effective slop pipelines.\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- Agency Agents\n- PropmtFoo\n- MicroFish\n- NanoChat\n- Impeccable\n- Heretic\n- OpenViking\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "7 new open source AI tools you need right now…", "Xn-gtHDsaPY", 374, false, "https://www.youtube.com/watch?v=Xn-gtHDsaPY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031200_7 new open source AI tools you need right now….mp4", false, 36, ~U[2026-03-12 17:49:19Z]] 09:49:20.551 [debug] QUERY OK source="sources" db=0.2ms idle=89.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" = ?) [36] 09:49:20.552 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 09:49:20.552 [debug] QUERY OK source="media_items" db=0.1ms 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 [2471228] 09:49:20.552 [debug] Current batch of media processed. Will check again in 1000ms 09:49:20.552 [debug] Current batch of media processed. Will check again in 1000ms 09:49:21.553 [debug] Current batch of media processed. Will check again in 1000ms 09:49:21.554 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 300, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", "id" => "Ug5u1OT1sxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "playlist_index" => 16, "timestamp" => 1773664301, "title" => "'tail' - print the ending of files - Video Man Pages", "upload_date" => "20260316"} 09:49:21.554 [debug] QUERY OK source="sources" db=0.2ms idle=1003.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 (?)) [35] 09:49:21.554 [debug] QUERY OK source="sources" db=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" = ?) [35] 09:49:21.557 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 12:31:41Z], 35] 09:49:21.559 [debug] QUERY OK source="media_items" db=1.0ms idle=1005.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "633664ae-6783-4dfd-b9c2-09277a037b94", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-16 12:31:41Z], ~U[2026-04-30 14:49:21Z], ~U[2026-04-30 14:49:21Z], "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, 35, ~U[2026-03-16 12:31:41Z]] 09:49:21.559 [debug] QUERY OK source="sources" db=0.1ms idle=96.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" = ?) [35] 09:49:21.559 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 09:49:21.560 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2499851] 09:49:21.560 [debug] Current batch of media processed. Will check again in 1000ms 09:49:22.554 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks: if you can verify a solution quickly, can you also find the solution quickly? Let's attempt to find out...\n\nClay Mathematics Institute: https://www.claymath.org/millennium/p-vs-np/ \n\n#coding #programming\n\n🔖 Topics Covered\n- What is P vs NP\n- History of P vs NP\n- Why is it so hard to prove?\n- Underlying mathematical concepts\n- Uses for P vs NP\n- What if P really does equal NP?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 425, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030900_The greatest unsolved problem in computer science....mp4", "id" => "x36UmiSiEzc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=x36UmiSiEzc", "playlist_index" => 16, "timestamp" => 1773081110, "title" => "The greatest unsolved problem in computer science...", "upload_date" => "20260309"} 09:49:22.554 [debug] QUERY OK source="sources" db=0.1ms idle=995.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 (?)) [36] 09:49:22.554 [debug] QUERY OK source="sources" db=0.1ms idle=995.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" = ?) [36] 09:49:22.556 [debug] QUERY OK source="media_items" db=1.4ms idle=995.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-09 18:31:50Z], 36] 09:49:22.557 [debug] QUERY OK source="media_items" db=0.8ms idle=996.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks: if you can verify a solution quickly, can you also find the solution quickly? Let's attempt to find out...\n\nClay Mathematics Institute: https://www.claymath.org/millennium/p-vs-np/ \n\n#coding #programming\n\n🔖 Topics Covered\n- What is P vs NP\n- History of P vs NP\n- Why is it so hard to prove?\n- Underlying mathematical concepts\n- Uses for P vs NP\n- What if P really does equal NP?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "The greatest unsolved problem in computer science...", "2e3e060c-28bb-4074-8c24-4e8c5888df63", "x36UmiSiEzc", 425, false, "https://www.youtube.com/watch?v=x36UmiSiEzc", 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030900_The greatest unsolved problem in computer science....mp4", false, false, false, 36, [], 98, ~U[2026-03-09 18:31:50Z], ~U[2026-04-30 14:49:22Z], ~U[2026-04-30 14:49:22Z], "Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks: if you can verify a solution quickly, can you also find the solution quickly? Let's attempt to find out...\n\nClay Mathematics Institute: https://www.claymath.org/millennium/p-vs-np/ \n\n#coding #programming\n\n🔖 Topics Covered\n- What is P vs NP\n- History of P vs NP\n- Why is it so hard to prove?\n- Underlying mathematical concepts\n- Uses for P vs NP\n- What if P really does equal NP?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "The greatest unsolved problem in computer science...", "x36UmiSiEzc", 425, false, "https://www.youtube.com/watch?v=x36UmiSiEzc", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030900_The greatest unsolved problem in computer science....mp4", false, 36, ~U[2026-03-09 18:31:50Z]] 09:49:22.557 [debug] QUERY OK source="sources" db=0.1ms idle=93.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" = ?) [36] 09:49:22.558 [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] 09:49:22.558 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 [2447525] 09:49:22.558 [debug] Current batch of media processed. Will check again in 1000ms 09:49:22.560 [debug] Current batch of media processed. Will check again in 1000ms 09:49:23.559 [debug] Current batch of media processed. Will check again in 1000ms 09:49:23.562 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 240, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", "id" => "2bI-HlSG3_I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2bI-HlSG3_I", "playlist_index" => 17, "timestamp" => 1773579605, "title" => "'head'- print the beginning of files - Video Man Pages", "upload_date" => "20260315"} 09:49:23.562 [debug] QUERY OK source="sources" db=0.2ms idle=1004.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 (?)) [35] 09:49:23.563 [debug] QUERY OK source="sources" db=0.1ms idle=1004.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" = ?) [35] 09:49:23.565 [debug] QUERY OK source="media_items" db=2.7ms idle=1004.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-15 13:00:05Z], 35] 09:49:23.567 [debug] QUERY OK source="media_items" db=1.0ms idle=1007.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "aa4817b3-4a76-43f1-8fa4-04abaf95291a", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-15 13:00:05Z], ~U[2026-04-30 14:49:23Z], ~U[2026-04-30 14:49:23Z], "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, 35, ~U[2026-03-15 13:00:05Z]] 09:49:23.567 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:23.567 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 09:49:23.568 [debug] QUERY OK source="media_items" db=0.1ms 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 [2492666] 09:49:23.568 [debug] Current batch of media processed. Will check again in 1000ms 09:49:24.560 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext -\u00A0a reimplementation of the Next.js API built on Vite, essentially freeing up your Next.js app to be deployed anywhere. Let's run it. \n\n#coding #programming #webdevelopment \n\n🔖 Topics Covered\n- What is Vinext?\n- How Cloudflare built Vinext\n- Vercel vs Cloudflare\n- Vinext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 317, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030200_Cloudflare just slop forked Next.js….mp4", "id" => "abbeIUOCzmw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=abbeIUOCzmw", "playlist_index" => 17, "timestamp" => 1772483785, "title" => "Cloudflare just slop forked Next.js…", "upload_date" => "20260302"} 09:49:24.560 [debug] QUERY OK source="sources" db=0.2ms idle=993.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 (?)) [36] 09:49:24.561 [debug] QUERY OK source="sources" db=0.1ms idle=993.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" = ?) [36] 09:49:24.562 [debug] QUERY OK source="media_items" db=1.5ms idle=993.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-02 20:36:25Z], 36] 09:49:24.564 [debug] QUERY OK source="media_items" db=1.3ms idle=994.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext -\u00A0a reimplementation of the Next.js API built on Vite, essentially freeing up your Next.js app to be deployed anywhere. Let's run it. \n\n#coding #programming #webdevelopment \n\n🔖 Topics Covered\n- What is Vinext?\n- How Cloudflare built Vinext\n- Vercel vs Cloudflare\n- Vinext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cloudflare just slop forked Next.js…", "20386968-e38d-4e7b-9686-26337f9fa1c4", "abbeIUOCzmw", 317, false, "https://www.youtube.com/watch?v=abbeIUOCzmw", 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030200_Cloudflare just slop forked Next.js….mp4", false, false, false, 36, [], 98, ~U[2026-03-02 20:36:25Z], ~U[2026-04-30 14:49:24Z], ~U[2026-04-30 14:49:24Z], "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext -\u00A0a reimplementation of the Next.js API built on Vite, essentially freeing up your Next.js app to be deployed anywhere. Let's run it. \n\n#coding #programming #webdevelopment \n\n🔖 Topics Covered\n- What is Vinext?\n- How Cloudflare built Vinext\n- Vercel vs Cloudflare\n- Vinext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cloudflare just slop forked Next.js…", "abbeIUOCzmw", 317, false, "https://www.youtube.com/watch?v=abbeIUOCzmw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030200_Cloudflare just slop forked Next.js….mp4", false, 36, ~U[2026-03-02 20:36:25Z]] 09:49:24.564 [debug] QUERY OK source="sources" db=0.1ms idle=98.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" = ?) [36] 09:49:24.564 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:49:24.565 [debug] QUERY OK source="media_items" db=0.1ms 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 [2393259] 09:49:24.565 [debug] Current batch of media processed. Will check again in 1000ms 09:49:24.568 [debug] Current batch of media processed. Will check again in 1000ms 09:49:25.566 [debug] Current batch of media processed. Will check again in 1000ms 09:49:25.570 [debug] Current batch of media processed. Will check again in 1000ms 09:49:26.567 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today is built on the shoulders of OSS - but not every open-source project makes it. Let's take a look at 5 open-source projects that achieved a meteoric rise and then crashed out under the weight of their own success.\n\n#coding #programming #oss \n\n🔖 Topics Covered\n- Mutable Instruments\n- Faker.js\n- Meteor\n- OpenSolaris\n- Netscape\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 398, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022600_When open-sourcing your code goes wrong....mp4", "id" => "wzzh7Not8XE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wzzh7Not8XE", "playlist_index" => 18, "timestamp" => 1772130378, "title" => "When open-sourcing your code goes wrong...", "upload_date" => "20260226"} 09:49:26.567 [debug] QUERY OK source="sources" db=0.2ms idle=586.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 (?)) [36] 09:49:26.568 [debug] QUERY OK source="sources" db=0.1ms idle=587.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" = ?) [36] 09:49:26.569 [debug] QUERY OK source="media_items" db=1.3ms idle=587.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 18:26:18Z], 36] 09:49:26.571 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 1555, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", "id" => "1STCtfTNKvk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1STCtfTNKvk", "playlist_index" => 18, "timestamp" => 1773320404, "title" => "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "upload_date" => "20260312"} 09:49:26.571 [debug] QUERY OK source="sources" db=0.1ms idle=102.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 (?)) [35] 09:49:26.571 [debug] QUERY OK source="media_items" db=1.4ms idle=588.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today is built on the shoulders of OSS - but not every open-source project makes it. Let's take a look at 5 open-source projects that achieved a meteoric rise and then crashed out under the weight of their own success.\n\n#coding #programming #oss \n\n🔖 Topics Covered\n- Mutable Instruments\n- Faker.js\n- Meteor\n- OpenSolaris\n- Netscape\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "When open-sourcing your code goes wrong...", "807a94ff-e70b-4c9c-877b-2da881072be4", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022600_When open-sourcing your code goes wrong....mp4", false, false, false, 36, [], 98, ~U[2026-02-26 18:26:18Z], ~U[2026-04-30 14:49:26Z], ~U[2026-04-30 14:49:26Z], "Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today is built on the shoulders of OSS - but not every open-source project makes it. Let's take a look at 5 open-source projects that achieved a meteoric rise and then crashed out under the weight of their own success.\n\n#coding #programming #oss \n\n🔖 Topics Covered\n- Mutable Instruments\n- Faker.js\n- Meteor\n- OpenSolaris\n- Netscape\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "When open-sourcing your code goes wrong...", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022600_When open-sourcing your code goes wrong....mp4", false, 36, ~U[2026-02-26 18:26:18Z]] 09:49:26.571 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [35] 09:49:26.571 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:26.572 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:49:26.574 [debug] QUERY OK source="media_items" db=2.8ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 13:00:04Z], 35] 09:49:26.575 [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 [2361714] 09:49:26.575 [debug] Current batch of media processed. Will check again in 1000ms 09:49:26.576 [debug] QUERY OK source="media_items" db=1.1ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "8b897f3d-53c7-4f8c-98f7-2c2e52c11676", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-12 13:00:04Z], ~U[2026-04-30 14:49:26Z], ~U[2026-04-30 14:49:26Z], "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, 35, ~U[2026-03-12 13:00:04Z]] 09:49:26.576 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:26.576 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 09:49:26.577 [debug] QUERY OK source="media_items" db=0.4ms 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 [2468669] 09:49:26.577 [debug] Current batch of media processed. Will check again in 1000ms 09:49:27.576 [debug] Current batch of media processed. Will check again in 1000ms 09:49:27.577 [debug] Current batch of media processed. Will check again in 1000ms 09:49:28.577 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n- The problem with React \n- Tanner Linsley\n- How to run TanStack Start\n- TanStack Router\n- Type-safe server functions\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "duration" => 138, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022000_TanStack Start in 100 Seconds.mp4", "id" => "1fUBWAETmkk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1fUBWAETmkk", "playlist_index" => 19, "timestamp" => 1771611625, "title" => "TanStack Start in 100 Seconds", "upload_date" => "20260220"} 09:49:28.577 [debug] QUERY OK source="sources" db=0.2ms idle=596.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 (?)) [36] 09:49:28.578 [debug] QUERY OK source="sources" db=0.1ms idle=596.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" = ?) [36] 09:49:28.578 [debug] Current batch of media processed. Will check again in 1000ms 09:49:28.580 [debug] QUERY OK source="media_items" db=1.6ms idle=597.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 18:20:25Z], 36] 09:49:28.581 [debug] QUERY OK source="media_items" db=0.7ms idle=599.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n- The problem with React \n- Tanner Linsley\n- How to run TanStack Start\n- TanStack Router\n- Type-safe server functions\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "TanStack Start in 100 Seconds", "2e12d3bd-49d3-4bc2-a36c-89a11c0fc49f", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022000_TanStack Start in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-02-20 18:20:25Z], ~U[2026-04-30 14:49:28Z], ~U[2026-04-30 14:49:28Z], "TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n- The problem with React \n- Tanner Linsley\n- How to run TanStack Start\n- TanStack Router\n- Type-safe server functions\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "TanStack Start in 100 Seconds", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022000_TanStack Start in 100 Seconds.mp4", false, 36, ~U[2026-02-20 18:20:25Z]] 09:49:28.581 [debug] QUERY OK source="sources" db=0.1ms idle=109.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" = ?) [36] 09:49:28.581 [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] 09:49:28.582 [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 [2314238] 09:49:28.582 [debug] Current batch of media processed. Will check again in 1000ms 09:49:29.066 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/37/ee/37ee4fb47bd9295b6d4de78d04d630cbf553bac89d14023fec1045721ab26ff9.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/25/eb/25ebbf0cf710f38d903ff36cae9230b266924e203b91caf7f64027b8214dfe23.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:49:29.066 [debug] Gracefully stopping file follower 09:49:29.067 [debug] QUERY OK source="sources" db=0.5ms idle=486.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 (?)) [35] 09:49:29.067 [debug] QUERY OK source="sources" db=0.1ms idle=486.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" = ?) [35] 09:49:29.070 [debug] QUERY OK source="media_items" db=2.6ms idle=486.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 13:01:41Z], 35] 09:49:29.071 [debug] QUERY OK source="media_items" db=0.8ms idle=489.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "c52ca875-bdf4-4557-890e-5896e89a5103", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, false, false, 35, [], 98, ~U[2026-04-30 13:01:41Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "If you are a Linux user, a new default folder just appeared in your home directory.\n\nREFERENCED:\n► https://itsfoss.com/news/new-projects-directory-linux/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A New Folder Just Appeared In Your Home Directory", "tg8PqPcOWjo", 329, false, "https://www.youtube.com/watch?v=tg8PqPcOWjo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e043000_A New Folder Just Appeared In Your Home Directory.mp4", false, 35, ~U[2026-04-30 13:01:41Z]] 09:49:29.072 [debug] QUERY OK source="sources" db=0.1ms idle=489.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" = ?) [35] 09:49:29.074 [debug] QUERY OK source="media_items" db=2.6ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 13:31:26Z], 35] 09:49:29.076 [debug] QUERY OK source="media_items" db=1.0ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "f476f862-79be-439c-8e54-dce159343aec", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, false, false, 35, [], 98, ~U[2026-04-27 13:31:26Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Today, I'm taking a quick first look at the recently released Ubuntu 26.04, codenamed \"Resolute Raccoon.\" This release is especially important because it's the LTS (Long Term Support) release of Ubuntu, meaning it gets 5-years of support!\n\nREFERENCED:\n► https://ubuntu.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "A Quick Look At Ubuntu 26.04 \"Resolute Raccoon\"", "3RpHc4Wl0N8", 1421, false, "https://www.youtube.com/watch?v=3RpHc4Wl0N8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042700_A Quick Look At Ubuntu 26.04 "Resolute Raccoon".mp4", false, 35, ~U[2026-04-27 13:31:26Z]] 09:49:29.076 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 09:49:29.079 [debug] QUERY OK source="media_items" db=2.4ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 13:01:34Z], 35] 09:49:29.084 [debug] QUERY OK source="media_items" db=4.9ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "0de39b75-1c3e-4d48-ba1f-c773248d72b0", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, false, false, 35, [], 98, ~U[2026-04-24 13:01:34Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Have you ever met someone that was always right about everything? Maybe you think that you are right about everything... \n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "I'm Always Right And You're Always Wrong (A Message To Non-Idiots!)", "o3RJSUBtsFg", 457, false, "https://www.youtube.com/watch?v=o3RJSUBtsFg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042400_I'm Always Right And You're Always Wrong (A Message To Non-Idiots!).mp4", false, 35, ~U[2026-04-24 13:01:34Z]] 09:49:29.085 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 09:49:29.088 [debug] QUERY OK source="media_items" db=2.6ms idle=9.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 11:14:59Z], 35] 09:49:29.089 [debug] QUERY OK source="media_items" db=0.8ms idle=11.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "2a85653a-d90b-4501-b3dd-05f7fa0f625e", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, false, false, 35, [], 98, ~U[2026-04-21 11:14:59Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Can I (a non-programmer) create a rather complicated web app in minutes using Claude A.I.? Spoiler: yes, I can.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Non-Programmer Builds Web App In Minutes", "ry2oqoDY_lA", 790, false, "https://www.youtube.com/watch?v=ry2oqoDY_lA", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e042100_Non-Programmer Builds Web App In Minutes.mp4", false, 35, ~U[2026-04-21 11:14:59Z]] 09:49:29.089 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.092 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 13:01:39Z], 35] 09:49:29.094 [debug] QUERY OK source="media_items" db=0.8ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "b69e6dc2-cfa2-4154-9572-bbb2496a7d3f", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, false, false, 35, [], 98, ~U[2026-04-18 13:01:39Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Artix Linux is a rolling-release distribution, based on Arch Linux, that offers the user the choice of several different non-systemd init systems. Today, I'm going to take a quick look at Artix with Xfce, dinit and xlibre.\n\nREFERENCED:\n► https://artixlinux.org/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Is Artix Linux Just A Protest Distro?", "tdr-144Ondo", 1205, false, "https://www.youtube.com/watch?v=tdr-144Ondo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041800_Is Artix Linux Just A Protest Distro?.mp4", false, 35, ~U[2026-04-18 13:01:39Z]] 09:49:29.094 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.097 [debug] QUERY OK source="media_items" db=2.7ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:18Z], 35] 09:49:29.099 [debug] QUERY OK source="media_items" db=0.8ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "5e022502-4230-446d-ab3e-31ace38deb0f", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, false, false, 35, [], 98, ~U[2026-04-12 13:00:18Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "CuerdOS is a GNU/Linux distribution of Spanish origin focused on stability, efficiency, and performance. Today, I'm taking a look at their KDE Plasma edition.\n\nREFERENCED:\n► https://cuerdos.github.io/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CuerdOS Is Not Just Another Distro! (Or Is It?)", "Bh4cQJ5aTUg", 992, false, "https://www.youtube.com/watch?v=Bh4cQJ5aTUg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e041200_CuerdOS Is Not Just Another Distro! (Or Is It?).mp4", false, 35, ~U[2026-04-12 13:00:18Z]] 09:49:29.099 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 09:49:29.102 [debug] QUERY OK source="media_items" db=2.8ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 13:01:45Z], 35] 09:49:29.103 [debug] QUERY OK source="media_items" db=0.7ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "89d5ac64-9070-4cdf-afe1-bdcea7bdcd19", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, false, false, 35, [], 98, ~U[2026-04-09 13:01:45Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Every major web browser has an incognito mode or a private mode. Many (possibly most) users think that this keeps them \"private\" while viewing the web. And it absolutely does not!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Incognito Web Browsing Is NOT Private! (Well...Sort Of)", "soN2EVOh1O8", 513, false, "https://www.youtube.com/watch?v=soN2EVOh1O8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040900_Incognito Web Browsing Is NOT Private! (Well...Sort Of).mp4", false, 35, ~U[2026-04-09 13:01:45Z]] 09:49:29.104 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.107 [debug] QUERY OK source="media_items" db=2.7ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 13:00:27Z], 35] 09:49:29.108 [debug] QUERY OK source="media_items" db=0.7ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "694c7cba-068f-4d95-9adc-c914d49474a2", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, false, false, 35, [], 98, ~U[2026-04-06 13:00:27Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "I'm surfing the web less and less now, thanks to my increasing use of A.I. tools like Claude and ChatGPT.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Has A.I. Made The Web Obsolete?", "GPcM_MKIfXs", 432, false, "https://www.youtube.com/watch?v=GPcM_MKIfXs", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040600_Has A.I. Made The Web Obsolete?.mp4", false, 35, ~U[2026-04-06 13:00:27Z]] 09:49:29.109 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.111 [debug] QUERY OK source="media_items" db=2.6ms idle=5.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 13:01:02Z], 35] 09:49:29.113 [debug] QUERY OK source="media_items" db=1.0ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "f4214f69-e748-40ad-949c-d254d1d22c38", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-04-03 13:01:02Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "The 'date' command prints or sets the date and time.\n\n- Print the current date/time, using the default locale's format:\n date +%c\n \n- Print the current date/time in UTC, using default format:\n date -u\n \n- Print the current date/time in UTC, using the ISO 8601 format:\n date -u +%Y-%m-%dT%H:%M:%S%Z\n\n- Print the date only using the ISO 8601 format:\n date +%F\n -or- \n date +\"%Y-%m-%d\"\n\n- Print the date in MM/DD/YY format:\n date +%D\n -or-\n date +\"%m/%d/%y\"\n \n- Print the time in HH:MM:SS format:\n date +%T\n -or-\n date +\"%H:%M:%S\"\n\n- Print the current date as a Unix timestamp (seconds since the Unix epoch):\n date +%s\n \n- Convert a Unix timestamp date (ex: 1773665635) to the default format:\n date -d @1773665635\n \n- Convert a given date to the Unix timestamp format:\n date -d \"2020-03-01 00:00\" +%s -u\n \n- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ) and printing seconds (s):\n date --rfc-3339 s\n NOTE Instead of 's' for seconds, you could use 'n' for nanoseconds of 'd' for printing date only.\n \n- Set the current date providing a full timestamp in quotes (requires sudo privileges):\n date -s \"2026-03-16 14:30:00\"\n \n- Set the current time while keeping the current date (requires sudo privleges).\n date +%T -s \"10:15:30\"\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'date' - print or set date and time - Video Man Pages", "WZMf-fC45ak", 396, false, "https://www.youtube.com/watch?v=WZMf-fC45ak", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040300_'date' - print or set date and time - Video Man Pages.mp4", false, 35, ~U[2026-04-03 13:01:02Z]] 09:49:29.113 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 09:49:29.116 [debug] QUERY OK source="media_items" db=2.6ms idle=5.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 15:15:09Z], 35] 09:49:29.118 [debug] QUERY OK source="media_items" db=0.8ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "8bf98e4f-517a-45a1-8bf6-afbdab545f5d", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, false, false, 35, [], 97, ~U[2026-04-02 15:15:09Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "The 'cal' command displays the calendar.\n\n- Display the 'single month' (current month) calendar:\n cal -1\n\n- The 'single month' calendar is the default:\n cal\n \n- Display three months spanning the date:\n cal -3\n\n- Display the whole calendar for the 'current' year:\n cal -y\n\n- Display a calendar for a specific year (4 digits):\n cal 2026\n\n- Display the next twelve months:\n cal -Y\n\n- Use 'Monday' as the first day of the week and display week numbers:\n cal -m -w\n\n- Display a calendar for a specific month and year:\n cal April 2026\n cal Apr 2026\n cal 04 2026\n \nNOTE: 'cal 04 26' would seen as April of the year '0026'.\n\n- Display calendar in 'vertical' layout using three month calendar:\n cal -v -3\n\n- Use 'julian' numbering (ordinal numbering) for days:\n cal -j\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'cal' - display a calendar - Video Man Pages", "G9bWGPlcZmI", 226, false, "https://www.youtube.com/watch?v=G9bWGPlcZmI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e040200_'cal' - display a calendar - Video Man Pages.mp4", false, 35, ~U[2026-04-02 15:15:09Z]] 09:49:29.118 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.121 [debug] QUERY OK source="media_items" db=2.5ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 13:00:06Z], 35] 09:49:29.122 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "7781fbc4-1840-45f9-bcdd-b2085ba068b3", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, false, false, 35, [], 98, ~U[2026-03-30 13:00:06Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.\n\nREFERENCED:\n► https://codeberg.org/dnkl/fuzzel\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Fuzzel Is A Run Launcher For Wayland Desktops", "4am_n25wOuI", 696, false, "https://www.youtube.com/watch?v=4am_n25wOuI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e033000_Fuzzel Is A Run Launcher For Wayland Desktops.mp4", false, 35, ~U[2026-03-30 13:00:06Z]] 09:49:29.123 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.125 [debug] QUERY OK source="media_items" db=2.5ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:45:49Z], 35] 09:49:29.126 [debug] QUERY OK source="media_items" db=0.9ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "28639a2c-80c8-416b-9c2d-e2feff52413f", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, false, false, 35, [], 98, ~U[2026-03-27 12:45:49Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "LinuxHub Prime is an Arch-based Linux distribution with a customised Openbox window manager as the default desktop environment. Its main feature is a unique installer that provides one-click installation options for several popular window managers and desktop environments.\n\nREFERENCED:\n► https://linuxhub.link/index.php\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Installation and First Look at LinuxHub Prime", "K5J4LG4detc", 1579, false, "https://www.youtube.com/watch?v=K5J4LG4detc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032700_Installation and First Look at LinuxHub Prime.mp4", false, 35, ~U[2026-03-27 12:45:49Z]] 09:49:29.127 [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" = ?) [35] 09:49:29.130 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 13:01:29Z], 35] 09:49:29.131 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "dd0c14f6-f94e-4e6a-b9ec-d296c3386871", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, false, false, 35, [], 98, ~U[2026-03-24 13:01:29Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites simple and fun. And you get to write the content using either Markdown or Org Mode. How cool is that!\n\nREFERENCED:\n► https://gohugo.io/\n► https://github.com/devcows/hugo-universal-theme\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Create Beautiful Websites With Hugo", "onw826NsgWQ", 962, false, "https://www.youtube.com/watch?v=onw826NsgWQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032400_Create Beautiful Websites With Hugo.mp4", false, 35, ~U[2026-03-24 13:01:29Z]] 09:49:29.132 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.135 [debug] QUERY OK source="media_items" db=2.6ms idle=5.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 13:00:44Z], 35] 09:49:29.136 [debug] QUERY OK source="media_items" db=0.8ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "7d231e0b-c26c-4b4c-840a-8908f5f6c74d", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, false, false, 35, [], 98, ~U[2026-03-21 13:00:44Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Some people are \"note takers.\" And most of these people are forever searching for the ultimate note taking app. Well, look no further. Emacs Org Mode has been the de facto standard for note taking for decades!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Taking Notes With Emacs Org Mode (It's Easy!)", "NebhEVR44Jc", 935, false, "https://www.youtube.com/watch?v=NebhEVR44Jc", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e032100_Taking Notes With Emacs Org Mode (It's Easy!).mp4", false, 35, ~U[2026-03-21 13:00:44Z]] 09:49:29.136 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.139 [debug] QUERY OK source="media_items" db=2.5ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 12:57:18Z], 35] 09:49:29.140 [debug] QUERY OK source="media_items" db=0.7ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "3dcd4e6b-86cb-4f1e-82ed-42ad4cc4b1a2", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, false, false, 35, [], 98, ~U[2026-03-18 12:57:18Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "In a recent survey, CachyOS was the most popular distro for gamers using protondb, overtaking Arch Linux. Why has CachyOS become so popular so fast? \n\nREFERENCED:\n► https://www.xda-developers.com/cachyos-dethrones-arch-as-the-top-desktop-distro-for-linux-gamers-on-protondb/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "CachyOS Dethrones Arch As Top Gaming Distro", "CPsMqjjsyhI", 645, false, "https://www.youtube.com/watch?v=CPsMqjjsyhI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031800_CachyOS Dethrones Arch As Top Gaming Distro.mp4", false, 35, ~U[2026-03-18 12:57:18Z]] 09:49:29.141 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.143 [debug] QUERY OK source="media_items" db=2.5ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 12:31:41Z], 35] 09:49:29.145 [debug] QUERY OK source="media_items" db=0.9ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "a0e29b74-db90-40aa-a1a8-58591663bbce", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-16 12:31:41Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "The 'tail' command is used to print the ending lines of a file.\n\n- Print last 10 lines in a file:\n tail path/to/file\n\n- Print last 10 lines of multiple files:\n tail path/to/file1 path/to/file2 ...\n\n- Print last 5 lines (-n 5) in file:\n tail -n 5 path/to/file\n\n- Print a file starting from line number 5 (-n +5):\n tail -n +5 path/to/file\n\n- Print the first 12 bytes (-c 12) from the end of a given file:\n tail -c 12 path/to/file\n\n- Print the last lines of a given file and keep reading it (following it) until CTRL-C:\n tail -f path/to/file\n NOTE Useful if running 'tail' on a file that is being appended constantly.\n\n- Show last 5 lines (-n 5) in a file, follow for changes (-f), and check every 5 seconds (-s 5):\n tail -n 5 -s 5 -f path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'tail' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'tail' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'tail' - print the ending of files - Video Man Pages", "Ug5u1OT1sxQ", 300, false, "https://www.youtube.com/watch?v=Ug5u1OT1sxQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031600_'tail' - print the ending of files - Video Man Pages.mp4", false, 35, ~U[2026-03-16 12:31:41Z]] 09:49:29.145 [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" = ?) [35] 09:49:29.148 [debug] QUERY OK source="media_items" db=2.5ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-15 13:00:05Z], 35] 09:49:29.149 [debug] QUERY OK source="media_items" db=0.8ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "56e0b734-8293-40e2-8362-7df6133777ef", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-03-15 13:00:05Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "The 'head' command is used to print the beginning lines of a file.\n\n- Print first 10 lines in a file:\n head path/to/file\n\n- Print first 10 lines of multiple files:\n head path/to/file1 path/to/file2 ...\n\n- Print the first 5 lines (-n 5) of a file:\n head -n 5 path/to/file\n\n- Print everything but the last 5 lines (-n -5) of a file:\n head -n -5 path/to/file\n\n- Print the first 12 bytes (-c) of a file:\n head -c 12 path/to/file\n\n- Print everything but the last few bytes of a file:\n head -c -12 path/to/file\n\n- Use verbose mode (-v) to print headers giving file names:\n head -v file1\n NOTE When running 'head' on multiple files, verbose is the default mode.\n\n- Use quiet mode (-q) to suppress the printing of headers giving file names:\n head -q file1 file2\n NOTE When running 'head' on a single file, quiet is the default mode.\n\nREFERENCED:\n► https://gitlab.com/dwt1/vidman - Video Man Pages\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "'head'- print the beginning of files - Video Man Pages", "2bI-HlSG3_I", 240, false, "https://www.youtube.com/watch?v=2bI-HlSG3_I", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031500_'head'- print the beginning of files - Video Man Pages.mp4", false, 35, ~U[2026-03-15 13:00:05Z]] 09:49:29.149 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.152 [debug] QUERY OK source="media_items" db=2.5ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 13:00:04Z], 35] 09:49:29.153 [debug] QUERY OK source="media_items" db=0.8ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "8ec2cf31-0234-45f4-b3ab-b2c797ad83e9", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-12 13:00:04Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Origami is a next-generation Linux distribution built on Fedora Atomic. It uses the Cosmic Desktop that was developed by PopOS. It also uses the CachyOS kernel. Oh...and it replaces a lot of the standard shell utilities with modern Rust alternatives! \n\nREFERENCED:\n► https://gitlab.com/origami-linux\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Origami Linux Is Both Elegant And Opinionated (And I Like It!)", "1STCtfTNKvk", 1555, false, "https://www.youtube.com/watch?v=1STCtfTNKvk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e031200_Origami Linux Is Both Elegant And Opinionated (And I Like It!).mp4", false, 35, ~U[2026-03-12 13:00:04Z]] 09:49:29.154 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 09:49:29.156 [debug] QUERY OK source="media_items" db=2.5ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-09 12:48:13Z], 35] 09:49:29.159 [debug] QUERY OK source="media_items" db=2.6ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "762662c5-8217-4297-a09c-11d40f990d7c", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, false, false, 35, [], 98, ~U[2026-03-09 12:48:13Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Since doing a fresh Linux installation on my office workstation three months ago, I've been doing a little experiment. I've only installed native Arch packages on this machine. That's right! No snaps or flatpaks or any of that sort of thing. And it's been GREAT!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!)", "58jkfpJ3j0E", 506, false, "https://www.youtube.com/watch?v=58jkfpJ3j0E", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e030900_Replacing Native Apps With Snaps And Flatpaks? (Don't Do It!).mp4", false, 35, ~U[2026-03-09 12:48:13Z]] 09:49:29.160 [debug] QUERY OK source="sources" db=0.4ms idle=7.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], 35] 09:49:29.163 [debug] QUERY OK source="media_items" db=3.0ms 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 INNER JOIN "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")))) [35] 09:49:29.166 [debug] QUERY OK source="media_items" db=2.7ms idle=9.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")))) [35] 09:49:29.167 [debug] QUERY OK source="media_items" db=0.5ms idle=9.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 09:49:29.168 [debug] QUERY OK source="tasks" db=0.4ms idle=4.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300711, 35, ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z]] 09:49:29.169 [info] {"args":{"id":35},"id":300624,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":64786251,"event":"job:stop","queue_time":894918,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:49:29.494 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/b2/05/b20585544fb575fcb5cc3753c6a9b6186b618c4fe9c65732433eae77fbd81e8f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/51/ae/51ae4ff3a40757a89bd765f44ebd6cbf6e659a0840e78a415c3dd2a06a99cfe8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 09:49:29.495 [debug] Gracefully stopping file follower 09:49:29.495 [debug] QUERY OK source="sources" db=0.2ms idle=326.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 (?)) [36] 09:49:29.495 [debug] QUERY OK source="sources" db=0.1ms idle=326.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" = ?) [36] 09:49:29.497 [debug] QUERY OK source="media_items" db=1.4ms idle=326.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 18:26:39Z], 36] 09:49:29.498 [debug] QUERY OK source="media_items" db=0.7ms idle=322.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\n- The state of OpenClaw\n- Fixing OpenClaw's security issues\n- Real-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "I finally found a use case for OpenClaw…", "a0224bc7-bc97-479a-8fc1-41874fd499e3", "FM5-R4VPArw", 315, false, "https://www.youtube.com/watch?v=FM5-R4VPArw", 1, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042300_I finally found a use case for OpenClaw….mp4", false, false, false, 36, [], 98, ~U[2026-04-23 18:26:39Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\n- The state of OpenClaw\n- Fixing OpenClaw's security issues\n- Real-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "I finally found a use case for OpenClaw…", "FM5-R4VPArw", 315, false, "https://www.youtube.com/watch?v=FM5-R4VPArw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042300_I finally found a use case for OpenClaw….mp4", false, 36, ~U[2026-04-23 18:26:39Z]] 09:49:29.498 [debug] QUERY OK source="sources" db=0.1ms idle=25.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" = ?) [36] 09:49:29.500 [debug] QUERY OK source="media_items" db=1.3ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:35:43Z], 36] 09:49:29.501 [debug] QUERY OK source="media_items" db=0.7ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\n- What is Claude Design\n- Claude Design vs Figma vs Adobe\n- Claude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude just got another superpower...", "3f141507-7636-4982-96e3-6e5066cd0fff", "jeA-KBv0b68", 312, false, "https://www.youtube.com/watch?v=jeA-KBv0b68", 2, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042100_Claude just got another superpower....mp4", false, false, false, 36, [], 98, ~U[2026-04-21 17:35:43Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\n- What is Claude Design\n- Claude Design vs Figma vs Adobe\n- Claude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude just got another superpower...", "jeA-KBv0b68", 312, false, "https://www.youtube.com/watch?v=jeA-KBv0b68", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e042100_Claude just got another superpower....mp4", false, 36, ~U[2026-04-21 17:35:43Z]] 09:49:29.501 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.503 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 15:29:01Z], 36] 09:49:29.504 [debug] QUERY OK source="media_items" db=0.8ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\n- Wordpress plugin hack \n- EmDash\n\n📚 Resources\n- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/accordion-and-accordion-slider/accordion-and-accordion-slider-146-injected-backdoor\n- https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of WordPress sites just got hacked... again", "c6018145-8f03-44fb-81ee-26cd44e7ffe5", "piah4fV_o2Q", 316, false, "https://www.youtube.com/watch?v=piah4fV_o2Q", 3, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041600_Millions of WordPress sites just got hacked... again.mp4", false, false, false, 36, [], 98, ~U[2026-04-16 15:29:01Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\n- Wordpress plugin hack \n- EmDash\n\n📚 Resources\n- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/accordion-and-accordion-slider/accordion-and-accordion-slider-146-injected-backdoor\n- https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of WordPress sites just got hacked... again", "piah4fV_o2Q", 316, false, "https://www.youtube.com/watch?v=piah4fV_o2Q", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041600_Millions of WordPress sites just got hacked... again.mp4", false, 36, ~U[2026-04-16 15:29:01Z]] 09:49:29.504 [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" = ?) [36] 09:49:29.506 [debug] QUERY OK source="media_items" db=1.2ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 19:29:35Z], 36] 09:49:29.507 [debug] QUERY OK source="media_items" db=0.7ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/research/26/c/axios-npm-package-compromised.html\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude Mythos is too dangerous for public consumption...", "cfa2549f-749f-45af-85bd-444e8b85b51b", "d3Qq-rkp_to", 336, false, "https://www.youtube.com/watch?v=d3Qq-rkp_to", 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041000_Claude Mythos is too dangerous for public consumption....mp4", false, false, false, 36, [], 98, ~U[2026-04-10 19:29:35Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/research/26/c/axios-npm-package-compromised.html\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Claude Mythos is too dangerous for public consumption...", "d3Qq-rkp_to", 336, false, "https://www.youtube.com/watch?v=d3Qq-rkp_to", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e041000_Claude Mythos is too dangerous for public consumption....mp4", false, 36, ~U[2026-04-10 19:29:35Z]] 09:49:29.507 [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" = ?) [36] 09:49:29.508 [debug] QUERY OK source="media_items" db=1.2ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 19:00:10Z], 36] 09:49:29.509 [debug] QUERY OK source="media_items" db=0.7ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CodeRabbit CLI can fix your agent’s code before it ever\u00A0opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding #programming #programming\n\n🔖 Topics Covered\n- How Gemma 4 works\n- Gemma 4 benchmarks\n- TurboQuant\n\n📌 Resources\n- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-gemma-4\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just casually disrupted the open-source AI narrative…", "190f84e9-e9c7-4f9f-93d5-4b5feb20c428", "-01ZCTt-CJw", 315, false, "https://www.youtube.com/watch?v=-01ZCTt-CJw", 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040800_Google just casually disrupted the open-source AI narrative….mp4", false, false, false, 36, [], 98, ~U[2026-04-08 19:00:10Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "CodeRabbit CLI can fix your agent’s code before it ever\u00A0opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding #programming #programming\n\n🔖 Topics Covered\n- How Gemma 4 works\n- Gemma 4 benchmarks\n- TurboQuant\n\n📌 Resources\n- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-gemma-4\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just casually disrupted the open-source AI narrative…", "-01ZCTt-CJw", 315, false, "https://www.youtube.com/watch?v=-01ZCTt-CJw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040800_Google just casually disrupted the open-source AI narrative….mp4", false, 36, ~U[2026-04-08 19:00:10Z]] 09:49:29.510 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [36] 09:49:29.511 [debug] QUERY OK source="media_items" db=1.3ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-06 18:37:57Z], 36] 09:49:29.512 [debug] QUERY OK source="media_items" db=0.8ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cursor ditches VS Code, but not everyone is happy...", "176039cd-56d0-4005-86c2-492075b61d26", "JSuS-zXMVwE", 302, false, "https://www.youtube.com/watch?v=JSuS-zXMVwE", 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040600_Cursor ditches VS Code, but not everyone is happy....mp4", false, false, false, 36, [], 98, ~U[2026-04-06 18:37:57Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cursor ditches VS Code, but not everyone is happy...", "JSuS-zXMVwE", 302, false, "https://www.youtube.com/watch?v=JSuS-zXMVwE", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040600_Cursor ditches VS Code, but not everyone is happy....mp4", false, 36, ~U[2026-04-06 18:37:57Z]] 09:49:29.513 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.514 [debug] QUERY OK source="media_items" db=1.2ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 19:18:38Z], 36] 09:49:29.516 [debug] QUERY OK source="media_items" db=1.4ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\n- Who is Cheng Lou?\n- Intro to Pretext\n- What makes dynamic text rendering so hard?\n- Pretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "He just crawled through hell to fix the browser…", "ecbe02ce-d03b-49ec-b5a4-821c2636a8f6", "vd14EElCRvs", 336, false, "https://www.youtube.com/watch?v=vd14EElCRvs", 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040200_He just crawled through hell to fix the browser….mp4", false, false, false, 36, [], 98, ~U[2026-04-02 19:18:38Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\n- Who is Cheng Lou?\n- Intro to Pretext\n- What makes dynamic text rendering so hard?\n- Pretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "He just crawled through hell to fix the browser…", "vd14EElCRvs", 336, false, "https://www.youtube.com/watch?v=vd14EElCRvs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040200_He just crawled through hell to fix the browser….mp4", false, 36, ~U[2026-04-02 19:18:38Z]] 09:49:29.516 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.518 [debug] QUERY OK source="media_items" db=1.2ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 17:27:05Z], 36] 09:49:29.519 [debug] QUERY OK source="media_items" db=0.6ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's in the leak?\n- Unreleased features\n- Undercover Mode\n- Frustration Detector\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tragic mistake... Anthropic leaks Claude’s source code", "51b0822d-507f-4144-adf1-a80eeac4e371", "mBHRPeg8zPU", 442, false, "https://www.youtube.com/watch?v=mBHRPeg8zPU", 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040100_Tragic mistake... Anthropic leaks Claude’s source code.mp4", false, false, false, 36, [], 98, ~U[2026-04-01 17:27:05Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's in the leak?\n- Unreleased features\n- Undercover Mode\n- Frustration Detector\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tragic mistake... Anthropic leaks Claude’s source code", "mBHRPeg8zPU", 442, false, "https://www.youtube.com/watch?v=mBHRPeg8zPU", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e040100_Tragic mistake... Anthropic leaks Claude’s source code.mp4", false, 36, ~U[2026-04-01 17:27:05Z]] 09:49:29.519 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.520 [debug] QUERY OK source="media_items" db=1.2ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 18:58:40Z], 36] 09:49:29.521 [debug] QUERY OK source="media_items" db=0.9ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library with over 100 million downloads on npm. But this wasn't your average RAT - let's take a look at how this highly sophisticated attack was pulled off and what to do if you're compromised.\n\n#coding #programming #hack \n\nℹ️ More Info:\n- https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\n\n🔖 Topics Covered\n- What is Axios\n- Axios RAT attack\n- What to do if you're compromised\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of JS devs just got penetrated by a RAT…", "ef6b61fd-866a-4691-b03c-8dc3edaafd3c", "o7NYXvYohYk", 298, false, "https://www.youtube.com/watch?v=o7NYXvYohYk", 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e033100_Millions of JS devs just got penetrated by a RAT….mp4", false, false, false, 36, [], 98, ~U[2026-03-31 18:58:40Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library with over 100 million downloads on npm. But this wasn't your average RAT - let's take a look at how this highly sophisticated attack was pulled off and what to do if you're compromised.\n\n#coding #programming #hack \n\nℹ️ More Info:\n- https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\n\n🔖 Topics Covered\n- What is Axios\n- Axios RAT attack\n- What to do if you're compromised\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Millions of JS devs just got penetrated by a RAT…", "o7NYXvYohYk", 298, false, "https://www.youtube.com/watch?v=o7NYXvYohYk", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e033100_Millions of JS devs just got penetrated by a RAT….mp4", false, 36, ~U[2026-03-31 18:58:40Z]] 09:49:29.522 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.523 [debug] QUERY OK source="media_items" db=1.2ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 18:11:51Z], 36] 09:49:29.524 [debug] QUERY OK source="media_items" db=0.6ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But is it actually a gamechanger, or just more slop hype? Let's run it.\n\n#coding #ai #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Anthropic just released the real Claude Bot...", "d923810c-20c0-4529-b546-1e27a16afec4", "wfeiCZK0mNs", 300, false, "https://www.youtube.com/watch?v=wfeiCZK0mNs", 10, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032600_Anthropic just released the real Claude Bot....mp4", false, false, false, 36, [], 98, ~U[2026-03-26 18:11:51Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But is it actually a gamechanger, or just more slop hype? Let's run it.\n\n#coding #ai #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Anthropic just released the real Claude Bot...", "wfeiCZK0mNs", 300, false, "https://www.youtube.com/watch?v=wfeiCZK0mNs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032600_Anthropic just released the real Claude Bot....mp4", false, 36, ~U[2026-03-26 18:11:51Z]] 09:49:29.524 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.526 [debug] QUERY OK source="media_items" db=1.2ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 18:22:27Z], 36] 09:49:29.527 [debug] QUERY OK source="media_items" db=0.7ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven military ops platform powered by companies like Palantir and OpenAI. But what else is it running under the hood?\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- What is the Maven Smart System?\n- Claude vs Pete Hegseth\n- How does the MSS actually work?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tech bros optimized war… and it’s working", "bfd89782-ff0d-4b11-b2f2-fa351544d38d", "nxwkn9Dt9-I", 321, false, "https://www.youtube.com/watch?v=nxwkn9Dt9-I", 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032400_Tech bros optimized war… and it’s working.mp4", false, false, false, 36, [], 98, ~U[2026-03-24 18:22:27Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven military ops platform powered by companies like Palantir and OpenAI. But what else is it running under the hood?\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- What is the Maven Smart System?\n- Claude vs Pete Hegseth\n- How does the MSS actually work?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Tech bros optimized war… and it’s working", "nxwkn9Dt9-I", 321, false, "https://www.youtube.com/watch?v=nxwkn9Dt9-I", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032400_Tech bros optimized war… and it’s working.mp4", false, 36, ~U[2026-03-24 18:22:27Z]] 09:49:29.527 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.529 [debug] QUERY OK source="media_items" db=1.2ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-20 19:32:24Z], 36] 09:49:29.530 [debug] QUERY OK source="media_items" db=0.8ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing users to verify their age at the operating system level on all internet-enabled devices. But one brave Linux script is daring to fight back against the mighty surveillance state…\n\n#linux #coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "This new Linux distro is breaking the law, by design…", "9c5b9920-c926-4cdd-b933-4c92dcbc83b5", "nkY_s9HpL9M", 289, false, "https://www.youtube.com/watch?v=nkY_s9HpL9M", 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032000_This new Linux distro is breaking the law, by design….mp4", false, false, false, 36, [], 98, ~U[2026-03-20 19:32:24Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing users to verify their age at the operating system level on all internet-enabled devices. But one brave Linux script is daring to fight back against the mighty surveillance state…\n\n#linux #coding #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "This new Linux distro is breaking the law, by design…", "nkY_s9HpL9M", 289, false, "https://www.youtube.com/watch?v=nkY_s9HpL9M", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e032000_This new Linux distro is breaking the law, by design….mp4", false, 36, ~U[2026-03-20 19:32:24Z]] 09:49:29.530 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [36] 09:49:29.531 [debug] QUERY OK source="media_items" db=1.1ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 19:35:06Z], 36] 09:49:29.532 [debug] QUERY OK source="media_items" db=0.6ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if it really is a gamechanger for UI/UX design.\n\n#coding #programming #ai \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just changed the future of UI/UX design...", "0d2e6ace-5aa4-40c8-b82c-8bd435407e01", "qaB5HF4ax9M", 290, false, "https://www.youtube.com/watch?v=qaB5HF4ax9M", 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031900_Google just changed the future of UI⧸UX design....mp4", false, false, false, 36, [], 98, ~U[2026-03-19 19:35:06Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if it really is a gamechanger for UI/UX design.\n\n#coding #programming #ai \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Google just changed the future of UI/UX design...", "qaB5HF4ax9M", 290, false, "https://www.youtube.com/watch?v=qaB5HF4ax9M", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031900_Google just changed the future of UI⧸UX design....mp4", false, 36, ~U[2026-03-19 19:35:06Z]] 09:49:29.533 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.534 [debug] QUERY OK source="media_items" db=1.1ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-18 17:56:58Z], 36] 09:49:29.535 [debug] QUERY OK source="media_items" db=0.7ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back in 2012. But after raising $30m, that never happened. Let's take a look back in time to understand why.\n\n#coding #javascript #opensource \n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How to burn $30m on a JavaScript framework...", "ad23a7db-b14a-48b9-9080-c9a151fce3b6", "ReAnFFqvCeA", 308, false, "https://www.youtube.com/watch?v=ReAnFFqvCeA", 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031800_How to burn $30m on a JavaScript framework....mp4", false, false, false, 36, [], 98, ~U[2026-03-18 17:56:58Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back in 2012. But after raising $30m, that never happened. Let's take a look back in time to understand why.\n\n#coding #javascript #opensource \n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How to burn $30m on a JavaScript framework...", "ReAnFFqvCeA", 308, false, "https://www.youtube.com/watch?v=ReAnFFqvCeA", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031800_How to burn $30m on a JavaScript framework....mp4", false, 36, ~U[2026-03-18 17:56:58Z]] 09:49:29.535 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [36] 09:49:29.537 [debug] QUERY OK source="media_items" db=1.2ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 17:49:19Z], 36] 09:49:29.537 [debug] QUERY OK source="media_items" db=0.6ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard of that will help you whip your agents into shape and build highly effective slop pipelines.\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- Agency Agents\n- PropmtFoo\n- MicroFish\n- NanoChat\n- Impeccable\n- Heretic\n- OpenViking\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "7 new open source AI tools you need right now…", "5e15881e-f48f-40b3-b38e-4cf77197cac4", "Xn-gtHDsaPY", 374, false, "https://www.youtube.com/watch?v=Xn-gtHDsaPY", 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031200_7 new open source AI tools you need right now….mp4", false, false, false, 36, [], 98, ~U[2026-03-12 17:49:19Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard of that will help you whip your agents into shape and build highly effective slop pipelines.\n\n#coding #programming #ai\n\n🔖 Topics Covered\n- Agency Agents\n- PropmtFoo\n- MicroFish\n- NanoChat\n- Impeccable\n- Heretic\n- OpenViking\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "7 new open source AI tools you need right now…", "Xn-gtHDsaPY", 374, false, "https://www.youtube.com/watch?v=Xn-gtHDsaPY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e031200_7 new open source AI tools you need right now….mp4", false, 36, ~U[2026-03-12 17:49:19Z]] 09:49:29.538 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [36] 09:49:29.539 [debug] QUERY OK source="media_items" db=1.3ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-09 18:31:50Z], 36] 09:49:29.540 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks: if you can verify a solution quickly, can you also find the solution quickly? Let's attempt to find out...\n\nClay Mathematics Institute: https://www.claymath.org/millennium/p-vs-np/ \n\n#coding #programming\n\n🔖 Topics Covered\n- What is P vs NP\n- History of P vs NP\n- Why is it so hard to prove?\n- Underlying mathematical concepts\n- Uses for P vs NP\n- What if P really does equal NP?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "The greatest unsolved problem in computer science...", "84f0e4ec-90ec-4328-a027-34e91472b31e", "x36UmiSiEzc", 425, false, "https://www.youtube.com/watch?v=x36UmiSiEzc", 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030900_The greatest unsolved problem in computer science....mp4", false, false, false, 36, [], 98, ~U[2026-03-09 18:31:50Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks: if you can verify a solution quickly, can you also find the solution quickly? Let's attempt to find out...\n\nClay Mathematics Institute: https://www.claymath.org/millennium/p-vs-np/ \n\n#coding #programming\n\n🔖 Topics Covered\n- What is P vs NP\n- History of P vs NP\n- Why is it so hard to prove?\n- Underlying mathematical concepts\n- Uses for P vs NP\n- What if P really does equal NP?\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "The greatest unsolved problem in computer science...", "x36UmiSiEzc", 425, false, "https://www.youtube.com/watch?v=x36UmiSiEzc", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030900_The greatest unsolved problem in computer science....mp4", false, 36, ~U[2026-03-09 18:31:50Z]] 09:49:29.541 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.542 [debug] QUERY OK source="media_items" db=1.1ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-02 20:36:25Z], 36] 09:49:29.561 [debug] QUERY OK source="media_items" db=19.2ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext -\u00A0a reimplementation of the Next.js API built on Vite, essentially freeing up your Next.js app to be deployed anywhere. Let's run it. \n\n#coding #programming #webdevelopment \n\n🔖 Topics Covered\n- What is Vinext?\n- How Cloudflare built Vinext\n- Vercel vs Cloudflare\n- Vinext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cloudflare just slop forked Next.js…", "1fee7410-44a2-44ef-b36b-61d68fe2745c", "abbeIUOCzmw", 317, false, "https://www.youtube.com/watch?v=abbeIUOCzmw", 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030200_Cloudflare just slop forked Next.js….mp4", false, false, false, 36, [], 98, ~U[2026-03-02 20:36:25Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext -\u00A0a reimplementation of the Next.js API built on Vite, essentially freeing up your Next.js app to be deployed anywhere. Let's run it. \n\n#coding #programming #webdevelopment \n\n🔖 Topics Covered\n- What is Vinext?\n- How Cloudflare built Vinext\n- Vercel vs Cloudflare\n- Vinext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "Cloudflare just slop forked Next.js…", "abbeIUOCzmw", 317, false, "https://www.youtube.com/watch?v=abbeIUOCzmw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e030200_Cloudflare just slop forked Next.js….mp4", false, 36, ~U[2026-03-02 20:36:25Z]] 09:49:29.562 [debug] QUERY OK source="sources" db=0.3ms idle=22.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" = ?) [36] 09:49:29.564 [debug] QUERY OK source="media_items" db=1.3ms idle=22.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 18:26:18Z], 36] 09:49:29.568 [debug] QUERY OK source="media_items" db=4.2ms idle=23.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today is built on the shoulders of OSS - but not every open-source project makes it. Let's take a look at 5 open-source projects that achieved a meteoric rise and then crashed out under the weight of their own success.\n\n#coding #programming #oss \n\n🔖 Topics Covered\n- Mutable Instruments\n- Faker.js\n- Meteor\n- OpenSolaris\n- Netscape\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "When open-sourcing your code goes wrong...", "fef1c33d-261a-4fb2-bea3-7f061dd39483", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022600_When open-sourcing your code goes wrong....mp4", false, false, false, 36, [], 98, ~U[2026-02-26 18:26:18Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today is built on the shoulders of OSS - but not every open-source project makes it. Let's take a look at 5 open-source projects that achieved a meteoric rise and then crashed out under the weight of their own success.\n\n#coding #programming #oss \n\n🔖 Topics Covered\n- Mutable Instruments\n- Faker.js\n- Meteor\n- OpenSolaris\n- Netscape\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "When open-sourcing your code goes wrong...", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022600_When open-sourcing your code goes wrong....mp4", false, 36, ~U[2026-02-26 18:26:18Z]] 09:49:29.569 [debug] QUERY OK source="sources" db=0.3ms idle=26.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" = ?) [36] 09:49:29.570 [debug] QUERY OK source="media_items" db=1.3ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 18:20:25Z], 36] 09:49:29.571 [debug] QUERY OK source="media_items" db=0.5ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n- The problem with React \n- Tanner Linsley\n- How to run TanStack Start\n- TanStack Router\n- Type-safe server functions\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "TanStack Start in 100 Seconds", "53905c50-09f1-4cf9-a695-7e6f4b207006", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022000_TanStack Start in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-02-20 18:20:25Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n- The problem with React \n- Tanner Linsley\n- How to run TanStack Start\n- TanStack Router\n- Type-safe server functions\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "TanStack Start in 100 Seconds", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e022000_TanStack Start in 100 Seconds.mp4", false, 36, ~U[2026-02-20 18:20:25Z]] 09:49:29.571 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 09:49:29.573 [debug] QUERY OK source="media_items" db=1.1ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-17 18:17:11Z], 36] 09:49:29.574 [debug] QUERY OK source="media_items" db=0.8ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Run hundreds of coding agents in the cloud - https://oz.dev/fireship. Use code FIRESHIP to get one month of their Build plan for $5 (instead of $20).\n\nSaaS companies are getting crushed right now. Let's look at 7 new AI updates from the past few weeks that help explain why...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How AI is breaking the SaaS business model...", "b721df10-cd07-47c1-9c8f-0d60c1f5a1cd", "cxcb55zr2Q8", 302, false, "https://www.youtube.com/watch?v=cxcb55zr2Q8", 20, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e021700_How AI is breaking the SaaS business model....mp4", false, false, false, 36, [], 98, ~U[2026-02-17 18:17:11Z], ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], "Run hundreds of coding agents in the cloud - https://oz.dev/fireship. Use code FIRESHIP to get one month of their Build plan for $5 (instead of $20).\n\nSaaS companies are getting crushed right now. Let's look at 7 new AI updates from the past few weeks that help explain why...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev", "How AI is breaking the SaaS business model...", "cxcb55zr2Q8", 302, false, "https://www.youtube.com/watch?v=cxcb55zr2Q8", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e021700_How AI is breaking the SaaS business model....mp4", false, 36, ~U[2026-02-17 18:17:11Z]] 09:49:29.574 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z], 36] 09:49:29.575 [debug] QUERY OK source="media_items" db=1.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 ((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")))) [36] 09:49:29.577 [debug] QUERY OK source="media_items" db=1.2ms idle=4.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")))) [36] 09:49:29.577 [debug] QUERY OK source="media_items" db=0.2ms idle=4.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 09:49:29.578 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300712, 36, ~U[2026-04-30 14:49:29Z], ~U[2026-04-30 14:49:29Z]] 09:49:29.579 [info] {"args":{"id":36},"id":300452,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":42160114,"event":"job:stop","queue_time":72618,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:49:36.572 [info] {"source":"oban","duration":3953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:00.889 [info] {"source":"oban","duration":157,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:50:06.576 [info] {"source":"oban","duration":3421,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:36.580 [info] {"source":"oban","duration":3318,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:51:00.890 [info] {"source":"oban","duration":211,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:51:06.584 [info] {"source":"oban","duration":2847,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:51:36.588 [info] {"source":"oban","duration":3367,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:00.891 [info] {"source":"oban","duration":313,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:52:06.592 [info] {"source":"oban","duration":3180,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:36.595 [info] {"source":"oban","duration":2376,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:44.227 [info] GET /sources/9/media/6884/force_download 09:52:44.228 [debug] QUERY OK source="settings" db=0.2ms idle=470.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:52:44.228 [debug] QUERY OK source="settings" db=0.1ms idle=247.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 [] 09:52:44.228 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:52:44.228 [error] #PID<0.190465.0> running PinchflatWeb.Endpoint (connection #PID<0.190464.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6884/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/9/media/6884/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6884/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190465.0>, params: %{}, path_info: ["sources", "9", "media", "6884", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6884/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqGN52-MUmjBQAUcPB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6884/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6884/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6884/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190465.0>, params: %{}, path_info: ["sources", "9", "media", "6884", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:52:44.590 [info] GET /sources/9/media/6885/force_download 09:52:44.591 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:52:44.591 [debug] QUERY OK source="settings" db=0.1ms idle=610.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:52:44.591 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:52:44.591 [error] #PID<0.190466.0> running PinchflatWeb.Endpoint (connection #PID<0.190464.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6885/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/9/media/6885/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6885/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190466.0>, params: %{}, path_info: ["sources", "9", "media", "6885", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6885/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqGPQTKXqmtcUAUcQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6885/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6885/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6885/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190466.0>, params: %{}, path_info: ["sources", "9", "media", "6885", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:52:45.155 [info] GET /sources/9/media/6877/force_download 09:52:45.156 [debug] QUERY OK source="settings" db=0.1ms idle=927.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:52:45.156 [debug] QUERY OK source="settings" db=0.0ms idle=927.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:52:45.156 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:52:45.156 [error] #PID<0.190467.0> running PinchflatWeb.Endpoint (connection #PID<0.190464.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6877/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/9/media/6877/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6877/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190467.0>, params: %{}, path_info: ["sources", "9", "media", "6877", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6877/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqGRXIfgRqTmcAUcRB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6877/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6877/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190464.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6877/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42094}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190467.0>, params: %{}, path_info: ["sources", "9", "media", "6877", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:52:52.921 [info] GET /sources/9/media/6875/force_download 09:52:52.921 [info] GET /sources/9/media/6882/force_download 09:52:52.922 [debug] QUERY OK source="settings" db=0.3ms idle=1940.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:52:52.922 [debug] QUERY OK source="settings" db=0.3ms idle=1152.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 [] 09:52:52.922 [debug] QUERY OK source="settings" db=0.0ms idle=941.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 [] 09:52:52.922 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:52:52.922 [debug] QUERY OK source="settings" db=0.0ms idle=941.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 [] 09:52:52.922 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:52:52.922 [error] #PID<0.190470.0> running PinchflatWeb.Endpoint (connection #PID<0.190468.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6875/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/9/media/6875/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190468.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6875/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35118}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190470.0>, params: %{}, path_info: ["sources", "9", "media", "6875", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6875/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqGuSq3Dl5u6wAUcSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190468.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6875/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35118}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6875/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190468.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6875/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35118}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190470.0>, params: %{}, path_info: ["sources", "9", "media", "6875", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:52:52.922 [error] #PID<0.190471.0> running PinchflatWeb.Endpoint (connection #PID<0.190469.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6882/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/9/media/6882/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6882/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35114}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190471.0>, params: %{}, path_info: ["sources", "9", "media", "6882", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6882/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqGuSq3FcvtTsASCDC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6882/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35114}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6882/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6882/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35114}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190471.0>, params: %{}, path_info: ["sources", "9", "media", "6882", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:53:00.892 [info] {"source":"oban","duration":200,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:53:06.598 [info] {"source":"oban","duration":2099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:36.601 [info] {"source":"oban","duration":2901,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:41.961 [info] GET /sources/9/media/6878/force_download 09:53:41.961 [debug] QUERY OK source="settings" db=0.1ms idle=1980.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:41.962 [debug] QUERY OK source="settings" db=0.0ms idle=1980.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:41.962 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:41.962 [error] #PID<0.190477.0> running PinchflatWeb.Endpoint (connection #PID<0.190476.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6878/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/9/media/6878/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6878/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190477.0>, params: %{}, path_info: ["sources", "9", "media", "6878", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6878/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqJk-p_x2_HksAUcVB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6878/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6878/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6878/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190477.0>, params: %{}, path_info: ["sources", "9", "media", "6878", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:53:42.184 [info] GET /sources/9/media/6887/force_download 09:53:42.184 [debug] QUERY OK source="settings" db=0.1ms idle=339.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:42.184 [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 [] 09:53:42.184 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:42.184 [error] #PID<0.190478.0> running PinchflatWeb.Endpoint (connection #PID<0.190476.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6887/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/9/media/6887/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6887/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190478.0>, params: %{}, path_info: ["sources", "9", "media", "6887", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6887/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqJlztixKD2IYAUcWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6887/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6887/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190476.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6887/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35736}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190478.0>, params: %{}, path_info: ["sources", "9", "media", "6887", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:53:52.462 [info] GET /sources/9/media/2662811/force_download 09:53:52.462 [debug] QUERY OK source="settings" db=0.1ms idle=598.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:52.462 [debug] QUERY OK source="settings" db=0.0ms idle=481.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 [] 09:53:52.462 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:52.462 [error] #PID<0.190481.0> running PinchflatWeb.Endpoint (connection #PID<0.190480.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2662811/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/9/media/2662811/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662811/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190481.0>, params: %{}, path_info: ["sources", "9", "media", "2662811", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2662811/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqKMGOOmF5ZxAAUcXB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662811/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2662811/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662811/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190481.0>, params: %{}, path_info: ["sources", "9", "media", "2662811", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 09:53:52.724 [info] GET /sources/9/media/6881/force_download 09:53:52.724 [debug] QUERY OK source="settings" db=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 [] 09:53:52.724 [debug] QUERY OK source="settings" db=0.0ms idle=743.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:52.724 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:52.724 [error] #PID<0.190482.0> running PinchflatWeb.Endpoint (connection #PID<0.190480.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6881/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/9/media/6881/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6881/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190482.0>, params: %{}, path_info: ["sources", "9", "media", "6881", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6881/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqKNEo6-2eAZYAUcYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6881/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6881/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6881/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 56340}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190482.0>, params: %{}, path_info: ["sources", "9", "media", "6881", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], r (truncated) 09:54:00.893 [info] {"source":"oban","duration":175,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:54:06.606 [info] {"source":"oban","duration":2697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:13.331 [info] GET /sources/9/media/6877 09:54:13.331 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6877", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:54:13.331 [debug] QUERY OK source="media_items" db=0.1ms idle=1350.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" = ?) [6877] 09:54:13.331 [debug] QUERY OK source="tasks" db=0.0ms idle=1350.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" [6877] 09:54:13.332 [debug] QUERY OK source="sources" db=0.2ms idle=1350.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" = ?) [9] 09:54:13.332 [debug] QUERY OK source="settings" db=0.0ms idle=1351.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:54:13.332 [debug] QUERY OK source="settings" db=0.0ms idle=441.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:54:13.332 [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 [] 09:54:13.333 [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] 09:54:13.333 [info] Sent 200 in 2ms 09:54:13.563 [info] GET /sources/9/media/6886/force_download 09:54:13.564 [debug] QUERY OK source="settings" db=0.1ms idle=232.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:54:13.564 [debug] QUERY OK source="settings" db=0.0ms idle=232.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 [] 09:54:13.564 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:54:13.565 [error] #PID<0.190490.0> running PinchflatWeb.Endpoint (connection #PID<0.190485.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/6886/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/9/media/6886/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190485.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6886/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33718}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190490.0>, params: %{}, path_info: ["sources", "9", "media", "6886", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/6886/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqLatQ5eJR0YQAUcbB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190485.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6886/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33718}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/6886/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190485.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/6886/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 33718}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYakc1LWFqWnVKX3JjS25DblVXZWpFSU1D.tedPHGjj6D4-dfeD63deq_JLJPqoYN9iHj1Z5yCD3bM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190490.0>, params: %{}, path_info: ["sources", "9", "media", "6886", "force_download"], path_params: %{}, port: 80, (truncated) 09:54:36.610 [info] {"source":"oban","duration":2898,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:00.894 [info] {"source":"oban","duration":147,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:55:05.871 [info] GET /sources/9/media/6885 09:55:05.871 [info] GET /sources/9/media/6884 09:55:05.871 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6884", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:05.871 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6885", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:05.871 [debug] QUERY OK source="media_items" db=0.2ms idle=1889.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" = ?) [6885] 09:55:05.871 [debug] QUERY OK source="media_items" db=0.4ms idle=1889.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" = ?) [6884] 09:55:05.872 [debug] QUERY OK source="tasks" db=0.2ms idle=894.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" [6885] 09:55:05.872 [debug] QUERY OK source="tasks" db=0.2ms idle=890.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" [6884] 09:55:05.872 [debug] QUERY OK source="sources" db=0.5ms idle=0.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" = ?) [9] 09:55:05.872 [debug] QUERY OK source="sources" db=0.6ms idle=890.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" = ?) [9] 09:55:05.872 [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 [] 09:55:05.872 [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 [] 09:55:05.873 [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 [] 09:55:05.873 [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 [] 09:55:05.873 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:55:05.873 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:55:05.874 [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] 09:55:05.874 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 09:55:05.874 [info] Sent 200 in 3ms 09:55:05.874 [info] Sent 200 in 3ms 09:55:06.613 [info] {"source":"oban","duration":2412,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:12.768 [info] GET /sources/9/media/6882 09:55:12.768 [info] GET /sources/9/media/6875 09:55:12.768 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6882", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:12.768 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6875", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:12.768 [debug] QUERY OK source="media_items" db=0.3ms idle=1787.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" = ?) [6882] 09:55:12.768 [debug] QUERY OK source="media_items" db=0.3ms idle=1787.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" = ?) [6875] 09:55:12.769 [debug] QUERY OK source="tasks" db=0.2ms idle=1784.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" [6882] 09:55:12.769 [debug] QUERY OK source="tasks" db=0.3ms idle=1787.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" [6875] 09:55:12.769 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [9] 09:55:12.769 [debug] QUERY OK source="sources" db=0.5ms idle=783.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" = ?) [9] 09:55:12.769 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:55:12.769 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:55:12.770 [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 [] 09:55:12.770 [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 [] 09:55:12.770 [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 [] 09:55:12.770 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:55:12.770 [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] 09:55:12.770 [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] 09:55:12.771 [info] Sent 200 in 3ms 09:55:12.771 [info] Sent 200 in 3ms 09:55:15.980 [info] GET /sources/9/media/6881 09:55:15.981 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6881", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:15.981 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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" = ?) [6881] 09:55:15.981 [debug] QUERY OK source="tasks" db=0.1ms idle=991.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" [6881] 09:55:15.982 [debug] QUERY OK source="sources" db=0.1ms idle=0.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" = ?) [9] 09:55:15.982 [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 [] 09:55:15.982 [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 [] 09:55:15.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 [] 09:55:15.983 [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] 09:55:15.984 [info] Sent 200 in 3ms 09:55:16.349 [info] GET /sources/9/media/6887 09:55:16.349 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6887", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:55:16.349 [debug] QUERY OK source="media_items" db=0.2ms idle=367.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" = ?) [6887] 09:55:16.350 [debug] QUERY OK source="tasks" db=0.1ms idle=367.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" [6887] 09:55:16.350 [debug] QUERY OK source="sources" db=0.2ms idle=367.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" = ?) [9] 09:55:16.350 [debug] QUERY OK source="settings" db=0.0ms idle=367.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:55:16.350 [debug] QUERY OK source="settings" db=0.0ms idle=359.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:55:16.350 [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 [] 09:55:16.351 [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] 09:55:16.352 [info] Sent 200 in 2ms 09:55:30.014 [info] {"args":{"id":1336676},"id":299245,"meta":{},"system_time":1777560930014806806,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:55:30.015 [debug] QUERY OK source="media_items" db=0.2ms idle=33.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" = ?) [1336676] 09:55:30.015 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:55:30.016 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 09:55:30.016 [debug] QUERY OK source="media_profiles" db=0.3ms idle=34.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] 09:55:30.017 [debug] QUERY OK source="media_items" db=0.3ms idle=7.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 [1336676] 09:55:30.017 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1336676] 09:55:30.018 [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] 09:55:30.018 [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 [] 09:55:30.018 [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 [] 09:55:30.018 [debug] Running yt-dlp command for action: get_downloadable_status 09:55:30.020 [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 [] 09:55:30.020 [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 [] 09:55:30.020 [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 [] 09:55:30.020 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HIslIHMkaF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9a/bc/9abcbadac6fb06fafd723295c8409c6421dd96b9563a2909ed38c6cb53a84f0b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:55:31.638 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HIslIHMkaF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9a/bc/9abcbadac6fb06fafd723295c8409c6421dd96b9563a2909ed38c6cb53a84f0b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HIslIHMkaF8: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:55:31.638 [error] yt-dlp download error for media item #1336676: "ERROR: [youtube] HIslIHMkaF8: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:55:31.639 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1336676},"id":299245,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1623812,"event":"job:exception","queue_time":638390,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:55:36.617 [info] {"source":"oban","duration":3576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:00.895 [info] {"source":"oban","duration":130,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:56:06.621 [info] {"source":"oban","duration":3284,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:12.592 [info] GET /sources/9/media/2662811 09:56:12.592 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2662811", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:56:12.593 [debug] QUERY OK source="media_items" db=0.1ms idle=611.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" = ?) [2662811] 09:56:12.593 [debug] QUERY OK source="tasks" db=0.1ms idle=612.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" [2662811] 09:56:12.593 [debug] QUERY OK source="sources" db=0.3ms idle=612.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" = ?) [9] 09:56:12.594 [debug] QUERY OK source="settings" db=0.1ms idle=612.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:12.594 [debug] QUERY OK source="settings" db=0.0ms idle=527.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:12.594 [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 [] 09:56:12.595 [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] 09:56:12.596 [info] Sent 200 in 3ms 09:56:12.666 [info] GET /sources/9/media/6878 09:56:12.666 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6878", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:56:12.666 [debug] QUERY OK source="media_items" db=0.1ms idle=72.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" = ?) [6878] 09:56:12.666 [debug] QUERY OK source="tasks" db=0.1ms idle=72.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" [6878] 09:56:12.667 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 09:56:12.667 [debug] QUERY OK source="settings" db=0.0ms idle=72.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:12.667 [debug] QUERY OK source="settings" db=0.0ms idle=72.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 [] 09:56:12.667 [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 [] 09:56:12.668 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:56:12.669 [info] Sent 200 in 2ms 09:56:16.081 [info] {"args":{"id":2844241},"id":300284,"meta":{},"system_time":1777560976081821312,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":14,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:56:16.082 [debug] QUERY OK source="media_items" db=0.1ms idle=100.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" = ?) [2844241] 09:56:16.082 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:56:16.082 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 09:56:16.083 [debug] QUERY OK source="media_profiles" db=0.1ms idle=101.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] 09:56:16.083 [debug] QUERY OK source="media_items" db=0.1ms idle=9.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 [2844241] 09:56:16.085 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [2844241] 09:56:16.085 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:56:16.085 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:56:16.085 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:56:16.085 [debug] Running yt-dlp command for action: get_downloadable_status 09:56:16.087 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:56:16.087 [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 [] 09:56:16.087 [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 [] 09:56:16.087 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=dpLkatTCfzU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bf/59/bf59ad5927a762bd7da4a7022635520baed58af61d87a8fc53f00308e37a6d12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:56:17.819 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=dpLkatTCfzU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bf/59/bf59ad5927a762bd7da4a7022635520baed58af61d87a8fc53f00308e37a6d12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] dpLkatTCfzU: Join this channel to get access to members-only content like this video, and other exclusive perks. 09:56:17.819 [error] yt-dlp download error for media item #2844241: "ERROR: [youtube] dpLkatTCfzU: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 09:56:17.820 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2844241},"id":300284,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1738184,"event":"job:exception","queue_time":555575,"attempt":14,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:56:34.145 [info] GET /sources/9/media/6886 09:56:34.145 [info] GET /media/7a664b8d-6b72-45f7-baa6-e0d6f9bff71f/stream 09:56:34.145 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "7a664b8d-6b72-45f7-baa6-e0d6f9bff71f"} Pipelines: [:maybe_basic_auth] 09:56:34.145 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "6886", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:56:34.145 [debug] QUERY OK source="media_items" db=0.3ms idle=1045.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" = ?) [6886] 09:56:34.146 [debug] QUERY OK source="tasks" db=0.1ms idle=164.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" [6886] 09:56:34.146 [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" = ?) [9] 09:56:34.146 [debug] QUERY OK source="media_items" db=1.0ms idle=1163.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" = ?) ["7a664b8d-6b72-45f7-baa6-e0d6f9bff71f"] 09:56:34.146 [debug] Invalid range request for media item: 7a664b8d-6b72-45f7-baa6-e0d6f9bff71f - serving full file 09:56:34.146 [info] Sent 200 in 1ms 09:56:34.146 [debug] QUERY OK source="settings" db=0.1ms idle=45.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:34.146 [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 [] 09:56:34.147 [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 [] 09:56:34.147 [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] 09:56:34.148 [info] Sent 200 in 3ms 09:56:36.625 [info] {"source":"oban","duration":3403,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:53.322 [info] GET /sources/52/media/2083158/force_download 09:56:53.322 [debug] QUERY OK source="settings" db=0.1ms idle=1341.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 [] 09:56:53.322 [debug] QUERY OK source="settings" db=0.0ms idle=1341.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:53.322 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:53.323 [error] #PID<0.190557.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2083158/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/52/media/2083158/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2083158/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190557.0>, params: %{}, path_info: ["sources", "52", "media", "2083158", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2083158/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqUt2mG7BDt4UAUcpB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2083158/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2083158/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2083158/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190557.0>, params: %{}, path_info: ["sources", "52", "media", "2083158", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:53.357 [info] GET /sources/9/media/2663559/force_download 09:56:53.357 [debug] QUERY OK source="settings" db=0.1ms idle=1376.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 [] 09:56:53.357 [debug] QUERY OK source="settings" db=0.0ms idle=1211.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:53.357 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:53.358 [error] #PID<0.190558.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2663559/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/9/media/2663559/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663559/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190558.0>, params: %{}, path_info: ["sources", "9", "media", "2663559", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2663559/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqUt-_cxuYXIQASCRC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663559/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2663559/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663559/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190558.0>, params: %{}, path_info: ["sources", "9", "media", "2663559", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 09:56:53.865 [info] GET /sources/30/media/2793046/force_download 09:56:53.865 [debug] QUERY OK source="settings" db=0.1ms idle=717.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 [] 09:56:53.865 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:56:53.865 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:53.866 [error] #PID<0.190559.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2793046/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/30/media/2793046/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2793046/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190559.0>, params: %{}, path_info: ["sources", "30", "media", "2793046", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2793046/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqUv4BJaywTEsASCSC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2793046/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2793046/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2793046/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190559.0>, params: %{}, path_info: ["sources", "30", "media", "2793046", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:54.362 [info] GET /sources/30/media/2563550/force_download 09:56:54.362 [debug] QUERY OK source="settings" db=0.1ms idle=1004.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:54.362 [debug] QUERY OK source="settings" db=0.0ms idle=1004.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:54.362 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:54.363 [error] #PID<0.190560.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2563550/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/30/media/2563550/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2563550/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190560.0>, params: %{}, path_info: ["sources", "30", "media", "2563550", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2563550/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqUxuj6L-gC9cASCTC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2563550/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2563550/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2563550/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190560.0>, params: %{}, path_info: ["sources", "30", "media", "2563550", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:54.865 [info] GET /sources/43/media/2751495/force_download 09:56:54.865 [debug] QUERY OK source="settings" db=0.3ms idle=999.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:54.866 [debug] QUERY OK source="settings" db=0.1ms idle=1000.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:54.866 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:54.866 [error] #PID<0.190561.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2751495/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/43/media/2751495/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2751495/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190561.0>, params: %{}, path_info: ["sources", "43", "media", "2751495", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2751495/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqUzmb32bYlcAASCUC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2751495/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2751495/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2751495/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190561.0>, params: %{}, path_info: ["sources", "43", "media", "2751495", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:55.366 [info] GET /sources/57/media/2468345/force_download 09:56:55.366 [debug] QUERY OK source="settings" db=0.1ms idle=1003.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:55.366 [debug] QUERY OK source="settings" db=0.0ms idle=1003.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:55.366 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:55.366 [error] #PID<0.190562.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2468345/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/57/media/2468345/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2468345/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190562.0>, params: %{}, path_info: ["sources", "57", "media", "2468345", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2468345/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU1d7GR4LnpYASCVC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2468345/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2468345/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2468345/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190562.0>, params: %{}, path_info: ["sources", "57", "media", "2468345", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:55.866 [info] GET /sources/57/media/2802698/force_download 09:56:55.866 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:56:55.867 [debug] QUERY OK source="settings" db=0.0ms idle=1000.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:55.867 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:55.867 [error] #PID<0.190563.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2802698/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/57/media/2802698/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2802698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190563.0>, params: %{}, path_info: ["sources", "57", "media", "2802698", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2802698/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU3VJcsI4PDwASCWC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2802698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2802698/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2802698/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190563.0>, params: %{}, path_info: ["sources", "57", "media", "2802698", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:56:56.392 [info] GET /sources/9/media/2663561/force_download 09:56:56.392 [debug] QUERY OK source="settings" db=0.1ms idle=1025.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:56.392 [debug] QUERY OK source="settings" db=0.0ms idle=1025.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:56.392 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:56.393 [error] #PID<0.190564.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 8) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2663561/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/9/media/2663561/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663561/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190564.0>, params: %{}, path_info: ["sources", "9", "media", "2663561", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2663561/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU5Sj0ak6NMoASCXC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663561/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2663561/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663561/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190564.0>, params: %{}, path_info: ["sources", "9", "media", "2663561", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 09:56:56.866 [info] GET /sources/9/media/2663555/force_download 09:56:56.867 [debug] QUERY OK source="settings" db=0.1ms idle=1000.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:56.867 [debug] QUERY OK source="settings" db=0.1ms idle=1000.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 [] 09:56:56.867 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:56.867 [error] #PID<0.190565.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 9) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2663555/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/9/media/2663555/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663555/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190565.0>, params: %{}, path_info: ["sources", "9", "media", "2663555", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2663555/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU7DsT_vRXUsASCYC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663555/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2663555/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663555/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190565.0>, params: %{}, path_info: ["sources", "9", "media", "2663555", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 09:56:57.383 [info] GET /sources/57/media/2561906/force_download 09:56:57.383 [debug] QUERY OK source="settings" db=0.2ms idle=990.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:57.384 [debug] QUERY OK source="settings" db=0.0ms idle=991.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 [] 09:56:57.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:57.384 [error] #PID<0.190566.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 10) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2561906/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/57/media/2561906/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2561906/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190566.0>, params: %{}, path_info: ["sources", "57", "media", "2561906", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2561906/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU8-2phNvGLQASCZC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2561906/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/media/2561906/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2561906/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190566.0>, params: %{}, path_info: ["sources", "57", "media", "2561906", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:56:57.928 [info] GET /sources/46/media/2670834/force_download 09:56:57.929 [debug] QUERY OK source="settings" db=0.1ms idle=1061.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:57.929 [debug] QUERY OK source="settings" db=0.0ms idle=1061.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:57.929 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:57.929 [error] #PID<0.190567.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 11) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2670834/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/46/media/2670834/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2670834/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190567.0>, params: %{}, path_info: ["sources", "46", "media", "2670834", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2670834/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqU_A40DXzw8sASCaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2670834/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2670834/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2670834/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190567.0>, params: %{}, path_info: ["sources", "46", "media", "2670834", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:56:58.369 [info] GET /sources/43/media/2844241/force_download 09:56:58.369 [debug] QUERY OK source="settings" db=0.2ms idle=985.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:58.370 [debug] QUERY OK source="settings" db=0.1ms idle=985.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:58.370 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:56:58.370 [error] #PID<0.190568.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 12) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2844241/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/43/media/2844241/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2844241/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190568.0>, params: %{}, path_info: ["sources", "43", "media", "2844241", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2844241/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqVAp9lnzcTbQASCbC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2844241/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2844241/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2844241/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190568.0>, params: %{}, path_info: ["sources", "43", "media", "2844241", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:57:00.896 [info] {"source":"oban","duration":136,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:57:03.370 [info] GET /sources/55/media/2620432/force_download 09:57:03.370 [debug] QUERY OK source="settings" db=0.1ms idle=1388.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:03.370 [debug] QUERY OK source="settings" db=0.0ms idle=1389.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:03.370 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:03.370 [error] #PID<0.190569.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 13) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2620432/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/55/media/2620432/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2620432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190569.0>, params: %{}, path_info: ["sources", "55", "media", "2620432", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2620432/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqVTSMhhaQ6vYASCcC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2620432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2620432/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2620432/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190569.0>, params: %{}, path_info: ["sources", "55", "media", "2620432", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:57:06.629 [info] {"source":"oban","duration":3804,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:07.176 [info] GET /sources/9/media/2663556/force_download 09:57:07.177 [debug] QUERY OK source="settings" db=0.1ms idle=1009.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 [] 09:57:07.177 [debug] QUERY OK source="settings" db=0.0ms idle=547.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 [] 09:57:07.177 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:07.177 [error] #PID<0.190570.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 14) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2663556/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/9/media/2663556/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663556/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190570.0>, params: %{}, path_info: ["sources", "9", "media", "2663556", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2663556/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqVhdu0qGsL3EASCdC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663556/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2663556/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2663556/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190570.0>, params: %{}, path_info: ["sources", "9", "media", "2663556", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "h (truncated) 09:57:12.069 [info] GET /sources/46/media/2722772/force_download 09:57:12.069 [debug] QUERY OK source="settings" db=0.1ms idle=1088.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:12.069 [debug] QUERY OK source="settings" db=0.1ms idle=1088.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:12.070 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:12.070 [error] #PID<0.190573.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 15) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2722772/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/46/media/2722772/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2722772/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190573.0>, params: %{}, path_info: ["sources", "46", "media", "2722772", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2722772/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqVzsQFx6PYcUASCfC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2722772/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2722772/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2722772/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190573.0>, params: %{}, path_info: ["sources", "46", "media", "2722772", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:57:17.072 [info] GET /sources/43/media/2453691/force_download 09:57:17.072 [debug] QUERY OK source="settings" db=0.2ms idle=1091.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:17.073 [debug] QUERY OK source="settings" db=0.0ms idle=1091.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:17.073 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:17.073 [error] #PID<0.190574.0> running PinchflatWeb.Endpoint (connection #PID<0.190556.0>, stream id 16) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2453691/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/43/media/2453691/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2453691/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190574.0>, params: %{}, path_info: ["sources", "43", "media", "2453691", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2453691/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqWGVDSwKrTfcASCgC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2453691/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2453691/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190556.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2453691/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34410}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190574.0>, params: %{}, path_info: ["sources", "43", "media", "2453691", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-p (truncated) 09:57:22.079 [info] GET /sources/52/media/2785782/force_download 09:57:22.079 [debug] QUERY OK source="settings" db=0.1ms idle=1098.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 [] 09:57:22.079 [debug] QUERY OK source="settings" db=0.0ms idle=1098.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:22.079 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:22.080 [error] #PID<0.190576.0> running PinchflatWeb.Endpoint (connection #PID<0.190575.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2785782/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/52/media/2785782/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190575.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2785782/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46388}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190576.0>, params: %{}, path_info: ["sources", "52", "media", "2785782", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2785782/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqWY-0owFq0c8ASChC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190575.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2785782/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46388}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2785782/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190575.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2785782/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 46388}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190576.0>, params: %{}, path_info: ["sources", "52", "media", "2785782", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 09:57:32.526 [info] GET /sources/9/media/2662814/force_download 09:57:32.526 [debug] QUERY OK source="settings" db=0.1ms idle=1545.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 [] 09:57:32.526 [debug] QUERY OK source="settings" db=0.0ms idle=1315.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:32.526 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:57:32.527 [error] #PID<0.190578.0> running PinchflatWeb.Endpoint (connection #PID<0.190577.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/media/2662814/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/9/media/2662814/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190577.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662814/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 48544}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190578.0>, params: %{}, path_info: ["sources", "9", "media", "2662814", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/media/2662814/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqW_5lXXpPmkMASCiC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190577.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662814/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 48544}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/media/2662814/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190577.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/media/2662814/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 48544}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190578.0>, params: %{}, path_info: ["sources", "9", "media", "2662814", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 09:57:36.634 [info] {"source":"oban","duration":3331,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:38.170 [info] GET /sources/45/media/2565295 09:57:38.170 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2565295", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 09:57:38.171 [debug] QUERY OK source="media_items" db=0.2ms idle=951.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" = ?) [2565295] 09:57:38.171 [debug] QUERY OK source="tasks" db=0.2ms idle=190.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" [2565295] 09:57:38.171 [debug] QUERY OK source="sources" db=0.2ms idle=190.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" = ?) [45] 09:57:38.172 [debug] QUERY OK source="settings" db=0.0ms idle=190.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:38.172 [debug] QUERY OK source="settings" db=0.1ms idle=190.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:57:38.172 [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 [] 09:57:38.172 [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] 09:57:38.173 [info] Sent 200 in 3ms 09:57:42.572 [info] GET /sources/55/media/2620432 09:57:42.572 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2620432", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 09:57:42.572 [debug] QUERY OK source="media_items" db=0.1ms idle=591.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" = ?) [2620432] 09:57:42.573 [debug] QUERY OK source="tasks" db=0.1ms idle=591.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" [2620432] 09:57:42.573 [debug] QUERY OK source="sources" db=0.2ms idle=591.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" = ?) [55] 09:57:42.573 [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 [] 09:57:42.573 [debug] QUERY OK source="settings" db=0.0ms idle=349.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 [] 09:57:42.574 [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 [] 09:57:42.574 [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] 09:57:42.575 [info] Sent 200 in 3ms 09:57:47.571 [info] GET /sources/30/media/2571132 09:57:47.571 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2571132", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 09:57:47.571 [debug] QUERY OK source="media_items" db=0.1ms idle=1590.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" = ?) [2571132] 09:57:47.572 [debug] QUERY OK source="tasks" db=0.0ms idle=1590.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" [2571132] 09:57:47.572 [debug] QUERY OK source="sources" db=0.2ms idle=1590.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" = ?) [30] 09:57:47.572 [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 [] 09:57:47.572 [debug] QUERY OK source="settings" db=0.0ms idle=340.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 [] 09:57:47.573 [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 [] 09:57:47.573 [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] 09:57:47.574 [info] Sent 200 in 3ms 09:58:00.897 [info] {"source":"oban","duration":531,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:58:05.459 [info] GET /sources/52/media/2085348 09:58:05.459 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2085348", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 09:58:05.459 [debug] QUERY OK source="media_items" db=0.1ms idle=1198.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" = ?) [2085348] 09:58:05.460 [debug] QUERY OK source="tasks" db=0.1ms idle=478.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" [2085348] 09:58:05.460 [debug] QUERY OK source="sources" db=0.1ms idle=479.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" = ?) [52] 09:58:05.460 [debug] QUERY OK source="settings" db=0.0ms idle=479.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 [] 09:58:05.460 [debug] QUERY OK source="settings" db=0.0ms idle=197.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:05.460 [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 [] 09:58:05.461 [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] 09:58:05.462 [info] Sent 200 in 2ms 09:58:06.638 [info] {"source":"oban","duration":3744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:09.946 [info] GET /sources/57/media/2647123 09:58:09.946 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2647123", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 09:58:09.947 [debug] QUERY OK source="media_items" db=0.1ms idle=1679.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" = ?) [2647123] 09:58:09.947 [debug] QUERY OK source="tasks" db=0.1ms idle=966.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" [2647123] 09:58:09.947 [debug] QUERY OK source="sources" db=0.2ms idle=966.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" = ?) [57] 09:58:09.947 [debug] QUERY OK source="settings" db=0.0ms idle=966.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:09.948 [debug] QUERY OK source="settings" db=0.0ms idle=678.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:09.948 [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 [] 09:58:09.948 [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] 09:58:09.949 [info] Sent 200 in 2ms 09:58:14.947 [info] GET /sources/43/media/2646022 09:58:14.947 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2646022", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 09:58:14.947 [debug] QUERY OK source="media_items" db=0.1ms idle=1966.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" = ?) [2646022] 09:58:14.948 [debug] QUERY OK source="tasks" db=0.0ms idle=1966.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" [2646022] 09:58:14.948 [debug] QUERY OK source="sources" db=0.1ms idle=1966.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" = ?) [43] 09:58:14.948 [debug] QUERY OK source="settings" db=0.0ms idle=1673.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:14.948 [debug] QUERY OK source="settings" db=0.0ms idle=672.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 [] 09:58:14.948 [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 [] 09:58:14.949 [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] 09:58:14.950 [info] Sent 200 in 2ms 09:58:19.951 [info] GET /sources/55/media/2693064 09:58:19.951 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2693064", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 09:58:19.951 [debug] QUERY OK source="media_items" db=0.2ms idle=1970.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" = ?) [2693064] 09:58:19.952 [debug] QUERY OK source="tasks" db=0.1ms idle=1970.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" [2693064] 09:58:19.952 [debug] QUERY OK source="sources" db=0.2ms idle=1970.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" = ?) [55] 09:58:19.952 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:19.952 [debug] QUERY OK source="settings" db=0.0ms idle=666.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:19.953 [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 [] 09:58:19.953 [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] 09:58:19.954 [info] Sent 200 in 3ms 09:58:20.295 [info] {"args":{"id":52},"id":300710,"meta":{},"system_time":1777561100295427145,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:58:20.296 [debug] QUERY OK source="sources" db=0.3ms idle=342.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" = ?) [52] 09:58:20.296 [debug] QUERY OK source="settings" db=0.3ms idle=342.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:20.296 [debug] QUERY OK source="media_profiles" db=0.1ms idle=342.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] 09:58:20.297 [debug] QUERY OK source="settings" db=0.3ms idle=8.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 [] 09:58:20.297 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 09:58:20.495 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:58:20.495 [debug] QUERY OK source="media_items" db=0.4ms idle=200.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."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 09:58:20.496 [debug] QUERY OK source="settings" db=0.1ms idle=200.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:20.496 [debug] QUERY OK source="settings" db=0.0ms idle=200.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 [] 09:58:20.496 [debug] Running yt-dlp command for action: get_media_attributes 09:58:20.498 [debug] QUERY OK source="settings" db=0.0ms idle=201.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:20.498 [debug] QUERY OK source="settings" db=0.1ms idle=201.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 [] 09:58:20.499 [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 [] 09:58:20.499 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/9f/3f/9f3ffb1a317698141879ad363ab5703239c796cb775ec09275cb3f4067a643bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:22.122 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/9f/3f/9f3ffb1a317698141879ad363ab5703239c796cb775ec09275cb3f4067a643bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 09:58:22.122 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 09:58:22.123 [debug] QUERY OK source="media_items" db=0.7ms idle=832.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")))) [52] 09:58:22.125 [debug] QUERY OK source="tasks" db=0.1ms idle=144.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300713, 1301334, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.128 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300714, 1301335, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.130 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300715, 1301347, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.132 [info] {"args":{"id":1301334},"id":300713,"meta":{},"system_time":1777561102132442359,"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"]} 09:58:22.132 [info] {"args":{"id":1301335},"id":300714,"meta":{},"system_time":1777561102132482146,"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"]} 09:58:22.133 [debug] QUERY OK source="media_items" db=0.4ms 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 WHERE (m0."id" = ?) [1301334] 09:58:22.133 [debug] QUERY OK source="media_items" db=0.4ms 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" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 09:58:22.133 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:22.133 [debug] QUERY OK source="tasks" db=0.2ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300716, 1301392, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.133 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:22.133 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [52] 09:58:22.133 [debug] QUERY OK source="sources" db=0.5ms idle=0.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" = ?) [52] 09:58:22.134 [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] 09:58:22.135 [debug] QUERY OK source="media_profiles" db=1.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] 09:58:22.135 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301335] 09:58:22.135 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301334] 09:58:22.136 [debug] QUERY OK source="tasks" db=0.2ms idle=0.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300717, 1301393, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.137 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301335] 09:58:22.137 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:58:22.138 [debug] QUERY OK source="media_metadata" db=0.6ms 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" = ?) [1301334] 09:58:22.138 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:22.138 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 09:58:22.139 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:22.139 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:22.139 [debug] QUERY OK source="settings" db=0.3ms queue=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 [] 09:58:22.139 [debug] QUERY OK source="tasks" db=0.3ms idle=0.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300718, 1301394, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.139 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:22.140 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:22.140 [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 [] 09:58:22.141 [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 [] 09:58:22.141 [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 [] 09:58:22.141 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/23/03/23035d95065f19a0f675f13fbd5f9261811af9782f99c76ab20e1b9d0d7e3d5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:22.141 [debug] QUERY OK source="tasks" db=0.1ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300719, 1301395, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.141 [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 [] 09:58:22.142 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:22.142 [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 [] 09:58:22.142 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a5/b9/a5b989f0bb902ba882825bdbaeba7d219b903c1877a96d28090946e3dbbe1304.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:22.144 [debug] QUERY OK source="tasks" db=0.5ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300720, 1301397, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.146 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300721, 1301398, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.148 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300722, 1301399, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.150 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300723, 1301400, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.152 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300724, 2720968, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.153 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300725, 52, ~U[2026-04-30 14:58:22Z], ~U[2026-04-30 14:58:22Z]] 09:58:22.154 [info] {"args":{"id":52},"id":300710,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":1858577,"event":"job:stop","queue_time":988938,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 09:58:23.728 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/23/03/23035d95065f19a0f675f13fbd5f9261811af9782f99c76ab20e1b9d0d7e3d5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:23.728 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:23.728 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:23.729 [info] {"args":{"id":1301335},"id":300714,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1596291,"event":"job:stop","queue_time":130946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:23.735 [info] {"args":{"id":1301347},"id":300715,"meta":{},"system_time":1777561103735601970,"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"]} 09:58:23.736 [debug] QUERY OK source="media_items" db=0.1ms idle=1575.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" = ?) [1301347] 09:58:23.736 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:23.736 [debug] QUERY OK source="sources" db=0.1ms idle=1444.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" = ?) [52] 09:58:23.736 [debug] QUERY OK source="media_profiles" db=0.1ms idle=441.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] 09:58:23.737 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301347] 09:58:23.739 [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" = ?) [1301347] 09:58:23.739 [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] 09:58:23.739 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:23.739 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:23.740 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:23.741 [debug] QUERY OK source="settings" db=0.0ms idle=4.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 [] 09:58:23.741 [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 [] 09:58:23.741 [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 [] 09:58:23.741 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c1/80/c180e24abe8492f96d66097a895bb57dc5b650773445be88a9207dac7f9df615.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:23.751 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a5/b9/a5b989f0bb902ba882825bdbaeba7d219b903c1877a96d28090946e3dbbe1304.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:23.751 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:23.751 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:23.751 [info] {"args":{"id":1301334},"id":300713,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1618972,"event":"job:stop","queue_time":130946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:23.758 [info] {"args":{"id":1301392},"id":300716,"meta":{},"system_time":1777561103758422063,"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"]} 09:58:23.758 [debug] QUERY OK source="media_items" db=0.1ms idle=17.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" = ?) [1301392] 09:58:23.758 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:23.759 [debug] QUERY OK source="sources" db=0.1ms idle=17.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" = ?) [52] 09:58:23.759 [debug] QUERY OK source="media_profiles" db=0.1ms idle=17.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] 09:58:23.759 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301392] 09:58:23.760 [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" = ?) [1301392] 09:58:23.760 [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] 09:58:23.761 [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 [] 09:58:23.761 [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 [] 09:58:23.761 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:23.763 [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 [] 09:58:23.763 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:23.763 [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 [] 09:58:23.763 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/eb/01eb5f19077a5683c7689054c7ecf91aa729440e753bcc0c4c68863488bebdc5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:24.964 [info] GET /media/64e005b1-2b54-4aca-a419-32e687c4cd9d/stream 09:58:24.964 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "64e005b1-2b54-4aca-a419-32e687c4cd9d"} Pipelines: [:maybe_basic_auth] 09:58:24.965 [debug] QUERY OK source="media_items" db=0.8ms idle=1203.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" = ?) ["64e005b1-2b54-4aca-a419-32e687c4cd9d"] 09:58:24.965 [debug] Invalid range request for media item: 64e005b1-2b54-4aca-a419-32e687c4cd9d - serving full file 09:58:24.965 [info] Sent 200 in 1ms 09:58:25.347 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c1/80/c180e24abe8492f96d66097a895bb57dc5b650773445be88a9207dac7f9df615.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:25.348 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:25.348 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:25.348 [info] {"args":{"id":1301347},"id":300715,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1612653,"event":"job:stop","queue_time":1734907,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:25.355 [info] {"args":{"id":1301393},"id":300717,"meta":{},"system_time":1777561105355602571,"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"]} 09:58:25.356 [debug] QUERY OK source="media_items" db=0.2ms idle=374.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" = ?) [1301393] 09:58:25.356 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:25.356 [debug] QUERY OK source="sources" db=0.1ms idle=375.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" = ?) [52] 09:58:25.356 [debug] QUERY OK source="media_profiles" db=0.1ms idle=59.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] 09:58:25.357 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [1301393] 09:58:25.357 [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" = ?) [1301393] 09:58:25.357 [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] 09:58:25.358 [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 [] 09:58:25.358 [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 [] 09:58:25.358 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:25.358 [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 [] 09:58:25.358 [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 [] 09:58:25.358 [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 [] 09:58:25.358 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0d/0d/0d0d657f9f109b6a6571afb8f17c9ad97f82932f7b483d72a106e824dccbb354.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:25.456 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/eb/01eb5f19077a5683c7689054c7ecf91aa729440e753bcc0c4c68863488bebdc5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:25.456 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:25.456 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:25.456 [info] {"args":{"id":1301392},"id":300716,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1697875,"event":"job:stop","queue_time":1757891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:25.462 [info] {"args":{"id":1301394},"id":300718,"meta":{},"system_time":1777561105462495413,"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"]} 09:58:25.462 [debug] QUERY OK source="media_items" db=0.1ms idle=104.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" = ?) [1301394] 09:58:25.462 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:25.463 [debug] QUERY OK source="sources" db=0.1ms idle=104.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" = ?) [52] 09:58:25.463 [debug] QUERY OK source="media_profiles" db=0.1ms idle=104.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] 09:58:25.463 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301394] 09:58:25.465 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301394] 09:58:25.466 [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] 09:58:25.466 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:25.466 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:25.466 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:25.467 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:25.467 [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 [] 09:58:25.468 [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 [] 09:58:25.468 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/7e/f07e9d568ee2330a36732df00f1c85461445486d3a7ce22270b6547e540e532f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:27.571 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f0/7e/f07e9d568ee2330a36732df00f1c85461445486d3a7ce22270b6547e540e532f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:27.572 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:27.572 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:27.572 [info] {"args":{"id":1301394},"id":300718,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2109843,"event":"job:stop","queue_time":3461938,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:27.578 [info] {"args":{"id":1301395},"id":300719,"meta":{},"system_time":1777561107578840218,"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"]} 09:58:27.579 [debug] QUERY OK source="media_items" db=0.1ms idle=597.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" = ?) [1301395] 09:58:27.579 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:27.579 [debug] QUERY OK source="sources" db=0.1ms idle=598.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" = ?) [52] 09:58:27.579 [debug] QUERY OK source="media_profiles" db=0.1ms idle=278.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] 09:58:27.580 [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 [1301395] 09:58:27.581 [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" = ?) [1301395] 09:58:27.581 [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] 09:58:27.581 [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 [] 09:58:27.581 [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 [] 09:58:27.581 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:27.582 [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 [] 09:58:27.582 [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 [] 09:58:27.582 [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 [] 09:58:27.582 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/76/c5764f8aa146629215f83387f0678b4cb6c5880c8ca706e335b651bb88c38af7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:27.631 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0d/0d/0d0d657f9f109b6a6571afb8f17c9ad97f82932f7b483d72a106e824dccbb354.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:27.631 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:27.631 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:27.632 [info] {"args":{"id":1301393},"id":300717,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2276088,"event":"job:stop","queue_time":3354939,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:27.638 [info] {"args":{"id":1301397},"id":300720,"meta":{},"system_time":1777561107638448427,"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"]} 09:58:27.638 [debug] QUERY OK source="media_items" db=0.1ms idle=56.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" = ?) [1301397] 09:58:27.638 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:27.639 [debug] QUERY OK source="sources" db=0.1ms idle=56.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" = ?) [52] 09:58:27.639 [debug] QUERY OK source="media_profiles" db=0.1ms idle=56.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] 09:58:27.639 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 09:58:27.642 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.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" = ?) [1301397] 09:58:27.642 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:58:27.642 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:27.642 [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 [] 09:58:27.642 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:27.643 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:27.644 [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 [] 09:58:27.644 [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 [] 09:58:27.644 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/4c/614cb3794e1f74570f593b1c513dde47826cd07a50cc9284e7e617448e193566.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:29.362 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/76/c5764f8aa146629215f83387f0678b4cb6c5880c8ca706e335b651bb88c38af7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:29.362 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:29.362 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:29.363 [info] {"args":{"id":1301395},"id":300719,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1783817,"event":"job:stop","queue_time":5577965,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:29.369 [info] {"args":{"id":1301398},"id":300721,"meta":{},"system_time":1777561109369566550,"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"]} 09:58:29.369 [debug] QUERY OK source="media_items" db=0.1ms idle=388.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" = ?) [1301398] 09:58:29.370 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:29.370 [debug] QUERY OK source="sources" db=0.1ms idle=388.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" = ?) [52] 09:58:29.370 [debug] QUERY OK source="media_profiles" db=0.1ms idle=60.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] 09:58:29.370 [debug] QUERY OK source="media_items" db=0.1ms idle=7.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 [1301398] 09:58:29.372 [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" = ?) [1301398] 09:58:29.372 [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] 09:58:29.372 [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 [] 09:58:29.372 [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 [] 09:58:29.373 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:29.373 [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 [] 09:58:29.373 [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 [] 09:58:29.373 [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 [] 09:58:29.373 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/31/553166d1daa41a3e2ab6ef410dabba218fa66a9567874efd4b0eb71d655bade6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:29.603 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/4c/614cb3794e1f74570f593b1c513dde47826cd07a50cc9284e7e617448e193566.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:29.603 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:29.603 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:29.604 [info] {"args":{"id":1301397},"id":300720,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1965428,"event":"job:stop","queue_time":5637947,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:29.610 [info] {"args":{"id":1301399},"id":300722,"meta":{},"system_time":1777561109610387792,"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"]} 09:58:29.610 [debug] QUERY OK source="media_items" db=0.1ms idle=237.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" = ?) [1301399] 09:58:29.610 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:29.611 [debug] QUERY OK source="sources" db=0.1ms idle=237.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" = ?) [52] 09:58:29.611 [debug] QUERY OK source="media_profiles" db=0.1ms idle=237.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] 09:58:29.611 [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 [1301399] 09:58:29.612 [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" = ?) [1301399] 09:58:29.612 [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] 09:58:29.612 [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 [] 09:58:29.612 [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 [] 09:58:29.612 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:29.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 [] 09:58:29.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 [] 09:58:29.613 [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 [] 09:58:29.613 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/78/9e78eff787be04c59df41b6fed5a77f0422f2c9de960a8ea5e7715821b6690d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:31.134 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/31/553166d1daa41a3e2ab6ef410dabba218fa66a9567874efd4b0eb71d655bade6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:31.134 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:31.134 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:31.134 [info] {"args":{"id":1301398},"id":300721,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1764903,"event":"job:stop","queue_time":7368937,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:31.141 [info] {"args":{"id":1301400},"id":300723,"meta":{},"system_time":1777561111141910145,"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"]} 09:58:31.142 [debug] QUERY OK source="media_items" db=0.1ms idle=160.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" = ?) [1301400] 09:58:31.142 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:31.142 [debug] QUERY OK source="sources" db=0.2ms idle=160.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" = ?) [52] 09:58:31.142 [debug] QUERY OK source="media_profiles" db=0.1ms idle=161.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] 09:58:31.143 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301400] 09:58:31.144 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301400] 09:58:31.144 [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] 09:58:31.144 [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 [] 09:58:31.145 [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 [] 09:58:31.145 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:31.147 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:31.147 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:31.147 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:31.147 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/94/9a/949a16165764d145f7b3854a312728df339ef991b799e8e453b9a9e2634a08b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:31.551 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/78/9e78eff787be04c59df41b6fed5a77f0422f2c9de960a8ea5e7715821b6690d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:31.551 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:31.551 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:31.552 [info] {"args":{"id":1301399},"id":300722,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1941523,"event":"job:stop","queue_time":7609892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:31.558 [info] {"args":{"id":2720968},"id":300724,"meta":{},"system_time":1777561111558544512,"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"]} 09:58:31.558 [debug] QUERY OK source="media_items" db=0.1ms idle=411.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" = ?) [2720968] 09:58:31.559 [info] User scripts lifecyle file either not present or is empty. Skipping. 09:58:31.559 [debug] QUERY OK source="sources" db=0.2ms idle=411.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" = ?) [52] 09:58:31.559 [debug] QUERY OK source="media_profiles" db=0.1ms idle=247.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] 09:58:31.559 [debug] QUERY OK source="media_items" db=0.2ms 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 [2720968] 09:58:31.561 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2720968] 09:58:31.561 [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] 09:58:31.561 [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 [] 09:58:31.561 [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 [] 09:58:31.561 [debug] Running yt-dlp command for action: get_downloadable_status 09:58:31.563 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:31.563 [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 [] 09:58:31.563 [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 [] 09:58:31.563 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/c8/34c8a1abfced9e19e5916f5b99edc7db3a7e4d7c9ba3f5faf7616bd406c60eee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:58:32.873 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/94/9a/949a16165764d145f7b3854a312728df339ef991b799e8e453b9a9e2634a08b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:32.873 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:32.874 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:32.874 [info] {"args":{"id":1301400},"id":300723,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1732321,"event":"job:stop","queue_time":9140896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:33.218 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/c8/34c8a1abfced9e19e5916f5b99edc7db3a7e4d7c9ba3f5faf7616bd406c60eee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 09:58:33.218 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:33.218 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 09:58:33.219 [info] {"args":{"id":2720968},"id":300724,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1660043,"event":"job:stop","queue_time":9557938,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 09:58:36.642 [info] {"source":"oban","duration":3444,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:45.051 [info] GET /sources/27/media/1075190 09:58:45.051 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1075190", "prevent_download" => "true", "source_id" => "27"} Pipelines: [:browser] 09:58:45.051 [debug] QUERY OK source="media_items" db=0.2ms idle=1070.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" = ?) [1075190] 09:58:45.052 [debug] QUERY OK source="tasks" db=0.1ms idle=720.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" [1075190] 09:58:45.052 [debug] QUERY OK source="sources" db=0.1ms idle=70.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" = ?) [27] 09:58:45.052 [debug] QUERY OK source="settings" db=0.0ms idle=71.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 [] 09:58:45.052 [debug] QUERY OK source="settings" db=0.0ms idle=71.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:45.052 [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 [] 09:58:45.053 [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] 09:58:45.054 [info] Sent 200 in 2ms 09:58:49.957 [info] GET /sources/30/media/2761936 09:58:49.957 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2761936", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 09:58:49.958 [debug] QUERY OK source="media_items" db=0.2ms idle=976.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" = ?) [2761936] 09:58:49.958 [debug] QUERY OK source="tasks" db=0.2ms idle=977.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" [2761936] 09:58:49.958 [debug] QUERY OK source="sources" db=0.2ms idle=977.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" = ?) [30] 09:58:49.959 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=977.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" IN (?,?)) [281982, 283911] 09:58:49.959 [debug] QUERY OK source="settings" db=0.0ms idle=619.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.959 [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 [] 09:58:49.959 [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 [] 09:58:49.960 [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] 09:58:49.961 [info] Sent 200 in 3ms 09:58:54.958 [info] GET /sources/30/media/2785377 09:58:54.959 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2785377", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 09:58:54.959 [debug] QUERY OK source="media_items" db=0.1ms idle=1978.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" = ?) [2785377] 09:58:54.960 [debug] QUERY OK source="tasks" db=0.2ms idle=1978.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" [2785377] 09:58:54.960 [debug] QUERY OK source="sources" db=0.2ms idle=1978.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" = ?) [30] 09:58:54.960 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1613.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" IN (?,?)) [285988, 288562] 09:58:54.960 [debug] QUERY OK source="settings" db=0.0ms idle=612.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:54.960 [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 [] 09:58:54.961 [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 [] 09:58:54.961 [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] 09:58:54.962 [info] Sent 200 in 3ms 09:59:00.418 [info] GET /sources/43/media/2453691 09:59:00.418 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2453691", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 09:59:00.418 [debug] QUERY OK source="media_items" db=0.1ms idle=437.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" = ?) [2453691] 09:59:00.419 [debug] QUERY OK source="tasks" db=0.1ms idle=437.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" [2453691] 09:59:00.419 [debug] QUERY OK source="sources" db=0.1ms idle=438.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" = ?) [43] 09:59:00.419 [debug] QUERY OK source="settings" db=0.0ms idle=438.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 [] 09:59:00.419 [debug] QUERY OK source="settings" db=0.0ms idle=61.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:00.420 [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 [] 09:59:00.420 [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] 09:59:00.421 [info] Sent 200 in 2ms 09:59:00.898 [info] {"source":"oban","duration":406,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 09:59:05.073 [info] GET /sources/9/media/2663561 09:59:05.073 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2663561", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:59:05.074 [debug] QUERY OK source="media_items" db=0.1ms idle=1092.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" = ?) [2663561] 09:59:05.074 [debug] QUERY OK source="tasks" db=0.0ms idle=1093.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" [2663561] 09:59:05.074 [debug] QUERY OK source="sources" db=0.1ms idle=1093.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" = ?) [9] 09:59:05.074 [debug] QUERY OK source="settings" db=0.0ms idle=1093.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 [] 09:59:05.074 [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 [] 09:59:05.075 [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 [] 09:59:05.075 [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] 09:59:05.076 [info] Sent 200 in 2ms 09:59:06.647 [info] {"source":"oban","duration":4049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:10.075 [info] GET /sources/9/media/2662813 09:59:10.075 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2662813", "prevent_download" => "true", "source_id" => "9"} Pipelines: [:browser] 09:59:10.075 [debug] QUERY OK source="media_items" db=0.2ms idle=1094.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" = ?) [2662813] 09:59:10.076 [debug] QUERY OK source="tasks" db=0.1ms idle=1095.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" [2662813] 09:59:10.076 [debug] QUERY OK source="sources" db=0.1ms idle=1095.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" = ?) [9] 09:59:10.076 [debug] QUERY OK source="settings" db=0.0ms idle=706.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:10.076 [debug] QUERY OK source="settings" db=0.1ms idle=95.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:10.077 [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 [] 09:59:10.077 [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] 09:59:10.078 [info] Sent 200 in 3ms 09:59:14.941 [info] GET /sources/43/media/2775036 09:59:14.941 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2775036", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 09:59:14.941 [debug] QUERY OK source="media_items" db=0.2ms idle=959.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" = ?) [2775036] 09:59:14.941 [debug] QUERY OK source="tasks" db=0.1ms idle=960.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" [2775036] 09:59:14.941 [debug] QUERY OK source="sources" db=0.2ms idle=960.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" = ?) [43] 09:59:14.942 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=960.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" = ?) [283963] 09:59:14.942 [debug] QUERY OK source="settings" db=0.0ms idle=563.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:14.942 [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 [] 09:59:14.942 [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 [] 09:59:14.943 [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] 09:59:14.944 [info] Sent 200 in 3ms 09:59:19.258 [info] GET /sources/46/media/2403321 09:59:19.258 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2403321", "prevent_download" => "true", "source_id" => "46"} Pipelines: [:browser] 09:59:19.259 [debug] QUERY OK source="media_items" db=0.1ms idle=1277.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" = ?) [2403321] 09:59:19.259 [debug] QUERY OK source="tasks" db=0.1ms idle=1278.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" [2403321] 09:59:19.259 [debug] QUERY OK source="sources" db=0.2ms idle=1278.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" = ?) [46] 09:59:19.260 [debug] QUERY OK source="settings" db=0.0ms idle=1278.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:19.260 [debug] QUERY OK source="settings" db=0.0ms idle=875.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 [] 09:59:19.260 [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 [] 09:59:19.260 [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] 09:59:19.261 [info] Sent 200 in 3ms 09:59:27.315 [info] GET /sources/57/media/2787403 09:59:27.315 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2787403", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 09:59:27.315 [debug] QUERY OK source="media_items" db=0.2ms idle=919.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" = ?) [2787403] 09:59:27.316 [debug] QUERY OK source="tasks" db=0.2ms idle=334.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" [2787403] 09:59:27.316 [debug] QUERY OK source="sources" db=0.2ms idle=334.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" = ?) [57] 09:59:27.317 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=335.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [286447, 286459, 288269, 288281, 290091, 290102, 292211, 292222, 294253, 294278, 295993, 296004, 297765, 297776, 299532, 299544] 09:59:27.317 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:59:27.317 [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 [] 09:59:27.318 [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 [] 09:59:27.318 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 09:59:27.320 [info] Sent 200 in 5ms 09:59:32.094 [info] GET /sources/46/media/2549909 09:59:32.094 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2549909", "prevent_download" => "true", "source_id" => "46"} Pipelines: [:browser] 09:59:32.095 [debug] QUERY OK source="media_items" db=0.2ms idle=1113.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" = ?) [2549909] 09:59:32.096 [debug] QUERY OK source="tasks" db=0.1ms idle=1114.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" [2549909] 09:59:32.096 [debug] QUERY OK source="sources" db=0.2ms idle=1114.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" = ?) [46] 09:59:32.096 [debug] QUERY OK source="settings" db=0.0ms idle=1114.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:32.096 [debug] QUERY OK source="settings" db=0.0ms idle=693.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:32.096 [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 [] 09:59:32.097 [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] 09:59:32.098 [info] Sent 200 in 3ms 09:59:36.650 [info] {"source":"oban","duration":2783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:37.109 [info] GET /sources/57/media/2561906 09:59:37.109 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2561906", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 09:59:37.109 [debug] QUERY OK source="media_items" db=0.2ms idle=1128.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" = ?) [2561906] 09:59:37.110 [debug] QUERY OK source="tasks" db=0.1ms idle=1128.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" [2561906] 09:59:37.110 [debug] QUERY OK source="sources" db=0.2ms idle=1128.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" = ?) [57] 09:59:37.110 [debug] QUERY OK source="settings" db=0.0ms idle=699.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:37.110 [debug] QUERY OK source="settings" db=0.0ms idle=459.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:37.111 [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 [] 09:59:37.111 [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] 09:59:37.112 [info] Sent 200 in 2ms 09:59:42.110 [info] GET /sources/55/media/2394368 09:59:42.110 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2394368", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 09:59:42.111 [debug] QUERY OK source="media_items" db=0.2ms idle=1129.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" = ?) [2394368] 09:59:42.111 [debug] QUERY OK source="tasks" db=0.1ms idle=1130.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" [2394368] 09:59:42.111 [debug] QUERY OK source="sources" db=0.1ms idle=1130.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" = ?) [55] 09:59:42.111 [debug] QUERY OK source="settings" db=0.1ms idle=1130.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:42.111 [debug] QUERY OK source="settings" db=0.0ms idle=695.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 [] 09:59:42.112 [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 [] 09:59:42.112 [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] 09:59:42.113 [info] Sent 200 in 3ms 09:59:47.110 [info] GET /sources/55/media/2534712 09:59:47.110 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2534712", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 09:59:47.110 [debug] QUERY OK source="media_items" db=0.1ms idle=1129.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" = ?) [2534712] 09:59:47.111 [debug] QUERY OK source="tasks" db=0.0ms idle=1129.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" [2534712] 09:59:47.111 [debug] QUERY OK source="sources" db=0.1ms idle=1129.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" = ?) [55] 09:59:47.111 [debug] QUERY OK source="settings" db=0.0ms idle=1130.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 [] 09:59:47.111 [debug] QUERY OK source="settings" db=0.0ms idle=687.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:59:47.111 [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 [] 09:59:47.112 [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] 09:59:47.113 [info] Sent 200 in 3ms 09:59:52.110 [info] GET /media/8a5654cc-dbbe-4d0d-a6b2-ff00d9fef528/stream 09:59:52.111 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "8a5654cc-dbbe-4d0d-a6b2-ff00d9fef528"} Pipelines: [:maybe_basic_auth] 09:59:52.112 [debug] QUERY OK source="media_items" db=1.0ms idle=1130.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."uuid" = ?) ["8a5654cc-dbbe-4d0d-a6b2-ff00d9fef528"] 09:59:52.112 [debug] Invalid range request for media item: 8a5654cc-dbbe-4d0d-a6b2-ff00d9fef528 - serving full file 09:59:52.112 [info] Sent 200 in 1ms 09:59:58.149 [info] GET /media/a3945b86-eb92-454b-905f-cc57bbac9f9b/stream 09:59:58.150 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a3945b86-eb92-454b-905f-cc57bbac9f9b"} Pipelines: [:maybe_basic_auth] 09:59:58.150 [debug] QUERY OK source="media_items" db=0.4ms idle=1169.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."uuid" = ?) ["a3945b86-eb92-454b-905f-cc57bbac9f9b"] 09:59:58.150 [debug] Invalid range request for media item: a3945b86-eb92-454b-905f-cc57bbac9f9b - serving full file 09:59:58.150 [info] Sent 200 in 975µs 10:00:00.770 [info] GET /media/e07e277f-75d0-4b83-bf66-c27188ba4282/stream 10:00:00.770 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "e07e277f-75d0-4b83-bf66-c27188ba4282"} Pipelines: [:maybe_basic_auth] 10:00:00.771 [debug] QUERY OK source="media_items" db=1.0ms idle=1789.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" = ?) ["e07e277f-75d0-4b83-bf66-c27188ba4282"] 10:00:00.771 [debug] Invalid range request for media item: e07e277f-75d0-4b83-bf66-c27188ba4282 - serving full file 10:00:00.771 [info] Sent 200 in 1ms 10:00:00.899 [info] {"source":"oban","duration":151,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:00:04.695 [info] GET /media/8fa414c6-58af-446c-a983-59d5f968f03d/stream 10:00:04.695 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "8fa414c6-58af-446c-a983-59d5f968f03d"} Pipelines: [:maybe_basic_auth] 10:00:04.696 [debug] QUERY OK source="media_items" db=0.8ms idle=714.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."uuid" = ?) ["8fa414c6-58af-446c-a983-59d5f968f03d"] 10:00:04.697 [debug] Invalid range request for media item: 8fa414c6-58af-446c-a983-59d5f968f03d - serving full file 10:00:04.697 [info] Sent 200 in 1ms 10:00:06.655 [info] {"source":"oban","duration":3082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:17.593 [info] GET /sources/43/media/2790678 10:00:17.593 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2790678", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 10:00:17.593 [debug] QUERY OK source="media_items" db=0.1ms idle=1612.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" = ?) [2790678] 10:00:17.594 [debug] QUERY OK source="tasks" db=0.1ms idle=1613.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" [2790678] 10:00:17.594 [debug] QUERY OK source="sources" db=0.1ms idle=1613.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" = ?) [43] 10:00:17.595 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=1128.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 (?,?)) [287117, 290400] 10:00:17.595 [debug] QUERY OK source="settings" db=0.0ms idle=128.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:00:17.595 [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 [] 10:00:17.595 [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 [] 10:00:17.596 [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] 10:00:17.597 [info] Sent 200 in 3ms 10:00:19.782 [info] GET /media/a0f3f545-5b4a-4712-80c5-daa8df8f9b5a/stream 10:00:19.782 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a0f3f545-5b4a-4712-80c5-daa8df8f9b5a"} Pipelines: [:maybe_basic_auth] 10:00:19.782 [debug] QUERY OK source="media_items" db=0.4ms idle=801.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" = ?) ["a0f3f545-5b4a-4712-80c5-daa8df8f9b5a"] 10:00:19.783 [debug] Invalid range request for media item: a0f3f545-5b4a-4712-80c5-daa8df8f9b5a - serving full file 10:00:19.783 [info] Sent 200 in 935µs 10:00:36.659 [info] {"source":"oban","duration":3902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:50.756 [info] GET /sources/9/force_metadata_refresh 10:00:50.756 [debug] QUERY OK source="settings" db=0.1ms idle=1775.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 [] 10:00:50.756 [debug] QUERY OK source="settings" db=0.0ms idle=1775.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 [] 10:00:50.756 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:00:50.756 [error] #PID<0.190739.0> running PinchflatWeb.Endpoint (connection #PID<0.190707.0>, stream id 9) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/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/9/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190739.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqiiXQQW13GqQASDXC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190739.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/force_metadata (truncated) 10:00:55.612 [info] GET /sources/55/force_metadata_refresh 10:00:55.613 [debug] QUERY OK source="settings" db=0.1ms idle=1631.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:00:55.613 [debug] QUERY OK source="settings" db=0.0ms idle=1632.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 [] 10:00:55.613 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:00:55.613 [error] #PID<0.190740.0> running PinchflatWeb.Endpoint (connection #PID<0.190707.0>, stream id 10) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/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/55/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190740.0>, params: %{}, path_info: ["sources", "55", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqi0dL1cTPJ1QASDYC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190707.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 51702}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190740.0>, params: %{}, path_info: ["sources", "55", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/ (truncated) 10:01:00.617 [info] GET /sources/17/sync_files_on_disk 10:01:00.617 [debug] QUERY OK source="settings" db=0.1ms idle=1636.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 [] 10:01:00.617 [debug] QUERY OK source="settings" db=0.0ms idle=1636.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:00.617 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:00.618 [error] #PID<0.190742.0> running PinchflatWeb.Endpoint (connection #PID<0.190741.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/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/17/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190741.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47260}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190742.0>, params: %{}, path_info: ["sources", "17", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqjHGVmvbenr4ASDZC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190741.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47260}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190741.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47260}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190742.0>, params: %{}, path_info: ["sources", "17", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/sync_files_on_disk", resp_body (truncated) 10:01:00.900 [info] {"source":"oban","duration":183,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:01:05.622 [info] GET /sources/57/sync_files_on_disk 10:01:05.623 [debug] QUERY OK source="settings" db=0.1ms idle=1641.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:05.623 [debug] QUERY OK source="settings" db=0.0ms idle=1642.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 [] 10:01:05.623 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:05.623 [error] #PID<0.190744.0> running PinchflatWeb.Endpoint (connection #PID<0.190743.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/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/57/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190744.0>, params: %{}, path_info: ["sources", "57", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqjZvvaI9Xz4IAUc3B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190744.0>, params: %{}, path_info: ["sources", "57", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/sync_files_on_disk", resp_body (truncated) 10:01:06.663 [info] {"source":"oban","duration":2394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:10.625 [info] GET /sources/25/sync_files_on_disk 10:01:10.626 [debug] QUERY OK source="settings" db=0.1ms idle=1092.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 [] 10:01:10.626 [debug] QUERY OK source="settings" db=0.0ms idle=644.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 [] 10:01:10.626 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:10.626 [error] #PID<0.190745.0> running PinchflatWeb.Endpoint (connection #PID<0.190743.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/25/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/25/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190745.0>, params: %{}, path_info: ["sources", "25", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqjsYh7auenIEAUc4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/25/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190743.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47266}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190745.0>, params: %{}, path_info: ["sources", "25", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/sync_files_on_disk", resp_body (truncated) 10:01:15.630 [info] GET /sources/57/force_index 10:01:15.631 [debug] QUERY OK source="settings" db=0.1ms idle=1649.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:15.631 [debug] QUERY OK source="settings" db=0.0ms idle=1650.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:15.631 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:15.631 [error] #PID<0.190749.0> running PinchflatWeb.Endpoint (connection #PID<0.190748.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/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/57/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190749.0>, params: %{}, path_info: ["sources", "57", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqj_B1AxTRWZkASDaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190749.0>, params: %{}, path_info: ["sources", "57", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:20.631 [info] GET /sources/45/force_index 10:01:20.632 [debug] QUERY OK source="settings" db=0.1ms idle=1650.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:20.632 [debug] QUERY OK source="settings" db=0.0ms idle=1083.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 [] 10:01:20.632 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:20.632 [error] #PID<0.190750.0> running PinchflatWeb.Endpoint (connection #PID<0.190748.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/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/45/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190750.0>, params: %{}, path_info: ["sources", "45", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqkRqLbdBt3QkAUc6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190748.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55046}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190750.0>, params: %{}, path_info: ["sources", "45", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:25.644 [info] GET /sources/25/force_index 10:01:25.644 [debug] QUERY OK source="settings" db=0.1ms idle=1663.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:25.644 [debug] QUERY OK source="settings" db=0.0ms idle=1663.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 [] 10:01:25.645 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:25.645 [error] #PID<0.190752.0> running PinchflatWeb.Endpoint (connection #PID<0.190751.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/25/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/25/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190751.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52812}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190752.0>, params: %{}, path_info: ["sources", "25", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqkkVRqAQUI10AUc7B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190751.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52812}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/25/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190751.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/25/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52812}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190752.0>, params: %{}, path_info: ["sources", "25", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/25/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:30.648 [info] GET /sources/17/force_index 10:01:30.649 [debug] QUERY OK source="settings" db=0.1ms idle=1668.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:30.649 [debug] QUERY OK source="settings" db=0.0ms idle=1086.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:30.649 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:30.649 [error] #PID<0.190754.0> running PinchflatWeb.Endpoint (connection #PID<0.190753.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/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/17/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60062}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190754.0>, params: %{}, path_info: ["sources", "17", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqk2-dgUJPUXsAUc8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60062}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190753.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60062}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190754.0>, params: %{}, path_info: ["sources", "17", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:35.653 [info] GET /sources/22/force_index 10:01:35.654 [debug] QUERY OK source="settings" db=0.1ms idle=1673.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:35.654 [debug] QUERY OK source="settings" db=0.0ms idle=1673.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 [] 10:01:35.654 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:35.654 [error] #PID<0.190756.0> running PinchflatWeb.Endpoint (connection #PID<0.190755.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/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/22/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60066}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190756.0>, params: %{}, path_info: ["sources", "22", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqlJnuRh7M1DcAUc9B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60066}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 60066}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190756.0>, params: %{}, path_info: ["sources", "22", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:36.668 [info] {"source":"oban","duration":4034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:40.660 [info] GET /sources/30/sync_files_on_disk 10:01:40.660 [debug] QUERY OK source="settings" db=0.1ms idle=1085.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:40.660 [debug] QUERY OK source="settings" db=0.0ms idle=679.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:40.660 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:40.661 [error] #PID<0.190758.0> running PinchflatWeb.Endpoint (connection #PID<0.190757.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/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/30/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52010}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190758.0>, params: %{}, path_info: ["sources", "30", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqlcRWCxyH8bsAUc-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.190757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52010}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52010}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190758.0>, params: %{}, path_info: ["sources", "30", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/sync_files_on_disk", resp_body (truncated) 10:01:45.664 [info] GET /sources/46/force_index 10:01:45.664 [debug] QUERY OK source="settings" db=0.1ms idle=1683.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 [] 10:01:45.664 [debug] QUERY OK source="settings" db=0.0ms idle=1683.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:45.664 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:45.665 [error] #PID<0.190763.0> running PinchflatWeb.Endpoint (connection #PID<0.190762.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/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/46/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190763.0>, params: %{}, path_info: ["sources", "46", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqlu6al7O8gUAAUc_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.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190763.0>, params: %{}, path_info: ["sources", "46", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:50.665 [info] GET /sources/26/force_index 10:01:50.666 [debug] QUERY OK source="settings" db=0.1ms idle=1684.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:50.666 [debug] QUERY OK source="settings" db=0.0ms idle=1075.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 [] 10:01:50.666 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:50.666 [error] #PID<0.190764.0> running PinchflatWeb.Endpoint (connection #PID<0.190762.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/26/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/26/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190764.0>, params: %{}, path_info: ["sources", "26", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/26/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqmBi18sSOPTMAUdAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/26/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190762.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52014}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190764.0>, params: %{}, path_info: ["sources", "26", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/26/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 10:01:55.673 [info] GET /sources/9/sync_files_on_disk 10:01:55.673 [debug] QUERY OK source="settings" db=0.1ms idle=1692.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:55.674 [debug] QUERY OK source="settings" db=0.0ms idle=1692.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:55.674 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:01:55.674 [error] #PID<0.190766.0> running PinchflatWeb.Endpoint (connection #PID<0.190765.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/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/9/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190765.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55752}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190766.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqmUMxQBeU7GYAUdBB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190765.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55752}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190765.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55752}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190766.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/sync_files_on_disk", resp_body: nil, (truncated) 10:02:00.901 [info] {"source":"oban","duration":129,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:02:00.967 [info] GET /sources/26/media/327254/edit 10:02:00.967 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "327254", "source_id" => "26"} Pipelines: [:browser] 10:02:00.967 [debug] QUERY OK source="media_items" db=0.1ms idle=1358.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" = ?) [327254] 10:02:00.967 [debug] QUERY OK source="settings" db=0.0ms idle=986.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:00.967 [debug] QUERY OK source="settings" db=0.0ms idle=986.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 [] 10:02:00.968 [debug] QUERY OK source="settings" db=0.0ms idle=358.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 [] 10:02:00.969 [info] Sent 200 in 2ms 10:02:05.849 [info] GET /sources/57/media/2161766 10:02:05.849 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161766", "source_id" => "57"} Pipelines: [:browser] 10:02:05.849 [debug] QUERY OK source="media_items" db=0.2ms idle=1868.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" = ?) [2161766] 10:02:05.850 [debug] QUERY OK source="tasks" db=0.1ms idle=1869.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" [2161766] 10:02:05.850 [debug] QUERY OK source="sources" db=0.2ms idle=1869.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" = ?) [57] 10:02:05.850 [debug] QUERY OK source="settings" db=0.0ms idle=1233.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 [] 10:02:05.850 [debug] QUERY OK source="settings" db=0.0ms idle=231.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:05.851 [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 [] 10:02:05.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] 10:02:05.852 [info] Sent 200 in 3ms 10:02:06.671 [info] {"source":"oban","duration":2302,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:10.849 [info] GET /sources/57/media/2161753 10:02:10.849 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161753", "source_id" => "57"} Pipelines: [:browser] 10:02:10.850 [debug] QUERY OK source="media_items" db=0.1ms idle=1869.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" = ?) [2161753] 10:02:10.850 [debug] QUERY OK source="tasks" db=0.1ms idle=1869.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" [2161753] 10:02:10.851 [debug] QUERY OK source="sources" db=0.3ms idle=1224.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" = ?) [57] 10:02:10.851 [debug] QUERY OK source="settings" db=0.0ms idle=870.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 [] 10:02:10.851 [debug] QUERY OK source="settings" db=0.0ms idle=224.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 [] 10:02:10.851 [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 [] 10:02:10.852 [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] 10:02:10.853 [info] Sent 200 in 3ms 10:02:15.855 [info] GET /sources/57/media/2161763 10:02:15.855 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161763", "source_id" => "57"} Pipelines: [:browser] 10:02:15.856 [debug] QUERY OK source="media_items" db=0.1ms idle=1874.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" = ?) [2161763] 10:02:15.856 [debug] QUERY OK source="tasks" db=0.1ms idle=1875.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" [2161763] 10:02:15.856 [debug] QUERY OK source="sources" db=0.1ms idle=1875.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" = ?) [57] 10:02:15.856 [debug] QUERY OK source="settings" db=0.0ms idle=1224.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 [] 10:02:15.857 [debug] QUERY OK source="settings" db=0.0ms idle=223.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:15.857 [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 [] 10:02:15.857 [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] 10:02:15.858 [info] Sent 200 in 3ms 10:02:20.856 [info] GET /sources/57/media/2161754 10:02:20.856 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161754", "source_id" => "57"} Pipelines: [:browser] 10:02:20.856 [debug] QUERY OK source="media_items" db=0.1ms idle=1875.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" = ?) [2161754] 10:02:20.857 [debug] QUERY OK source="tasks" db=0.1ms idle=1876.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" [2161754] 10:02:20.857 [debug] QUERY OK source="sources" db=0.1ms idle=1876.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" = ?) [57] 10:02:20.857 [debug] QUERY OK source="settings" db=0.0ms idle=1217.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:20.857 [debug] QUERY OK source="settings" db=0.0ms idle=216.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 [] 10:02:20.858 [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 [] 10:02:20.858 [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] 10:02:20.859 [info] Sent 200 in 2ms 10:02:25.857 [info] GET /sources/57/media/2161762 10:02:25.857 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161762", "source_id" => "57"} Pipelines: [:browser] 10:02:25.857 [debug] QUERY OK source="media_items" db=0.1ms idle=1876.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" = ?) [2161762] 10:02:25.858 [debug] QUERY OK source="tasks" db=0.1ms idle=1876.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" [2161762] 10:02:25.858 [debug] QUERY OK source="sources" db=0.1ms idle=1876.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" = ?) [57] 10:02:25.858 [debug] QUERY OK source="settings" db=0.0ms idle=1210.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 [] 10:02:25.858 [debug] QUERY OK source="settings" db=0.0ms idle=208.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 [] 10:02:25.859 [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 [] 10:02:25.859 [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] 10:02:25.860 [info] Sent 200 in 2ms 10:02:30.858 [info] GET /sources/57/media/2358863 10:02:30.859 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2358863", "source_id" => "57"} Pipelines: [:browser] 10:02:30.859 [debug] QUERY OK source="media_items" db=0.3ms idle=1878.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" = ?) [2358863] 10:02:30.860 [debug] QUERY OK source="tasks" db=0.2ms idle=1878.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" [2358863] 10:02:30.860 [debug] QUERY OK source="sources" db=0.3ms idle=1878.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" = ?) [57] 10:02:30.861 [debug] QUERY OK source="oban_jobs" db=1.0ms idle=1203.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [278012, 278015, 279619, 279622, 281083, 281086, 282369, 282375, 283712, 283716, 285035, 285038, 286452, 286455, 288274, 288277, 290095, 290098, 292215, 292218, 294271, 294274, 295997, 296000, 297769, 297772, 299537, 299540] 10:02:30.862 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:02:30.862 [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 [] 10:02:30.862 [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 [] 10:02:30.863 [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] 10:02:30.865 [info] Sent 200 in 6ms 10:02:35.862 [info] GET /sources/57/media/2161759 10:02:35.862 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161759", "source_id" => "57"} Pipelines: [:browser] 10:02:35.862 [debug] QUERY OK source="media_items" db=0.1ms idle=1881.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" = ?) [2161759] 10:02:35.863 [debug] QUERY OK source="tasks" db=0.0ms idle=1882.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" [2161759] 10:02:35.863 [debug] QUERY OK source="sources" db=0.1ms idle=1882.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" = ?) [57] 10:02:35.863 [debug] QUERY OK source="settings" db=0.0ms idle=1198.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 [] 10:02:35.863 [debug] QUERY OK source="settings" db=0.0ms idle=196.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:35.864 [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 [] 10:02:35.864 [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] 10:02:35.865 [info] Sent 200 in 3ms 10:02:36.674 [info] {"source":"oban","duration":2281,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:40.861 [info] GET /sources/38/media/2195118 10:02:40.861 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2195118", "source_id" => "38"} Pipelines: [:browser] 10:02:40.861 [debug] QUERY OK source="media_items" db=0.2ms idle=1880.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" = ?) [2195118] 10:02:40.861 [debug] QUERY OK source="tasks" db=0.1ms idle=1880.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" [2195118] 10:02:40.862 [debug] QUERY OK source="sources" db=0.1ms idle=1188.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" = ?) [38] 10:02:40.862 [debug] QUERY OK source="settings" db=0.0ms idle=881.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:40.862 [debug] QUERY OK source="settings" db=0.0ms idle=187.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:40.862 [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 [] 10:02:40.863 [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] 10:02:40.864 [info] Sent 200 in 3ms 10:02:45.864 [info] GET /sources/22/media/811286 10:02:45.864 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "811286", "source_id" => "22"} Pipelines: [:browser] 10:02:45.864 [debug] QUERY OK source="media_items" db=0.2ms idle=1883.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" = ?) [811286] 10:02:45.865 [debug] QUERY OK source="tasks" db=0.1ms idle=1883.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" [811286] 10:02:45.865 [debug] QUERY OK source="sources" db=0.1ms idle=1883.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" = ?) [22] 10:02:45.865 [debug] QUERY OK source="settings" db=0.0ms idle=1184.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:45.865 [debug] QUERY OK source="settings" db=0.0ms idle=183.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:45.865 [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 [] 10:02:45.866 [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] 10:02:45.867 [info] Sent 200 in 3ms 10:02:50.865 [info] GET /sources/57/media/2186150 10:02:50.865 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2186150", "source_id" => "57"} Pipelines: [:browser] 10:02:50.865 [debug] QUERY OK source="media_items" db=0.1ms idle=1884.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" = ?) [2186150] 10:02:50.866 [debug] QUERY OK source="tasks" db=0.1ms idle=1885.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" [2186150] 10:02:50.866 [debug] QUERY OK source="sources" db=0.1ms idle=1885.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" = ?) [57] 10:02:50.866 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1178.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [278014, 279621, 281085, 282374, 283715, 285037, 286454, 288276, 290097, 292217, 294273, 295999, 297771, 299539] 10:02:50.867 [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 [] 10:02:50.867 [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 [] 10:02:50.867 [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 [] 10:02:50.867 [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] 10:02:50.869 [info] Sent 200 in 4ms 10:02:55.868 [info] GET /sources/38/media/1911765 10:02:55.868 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1911765", "source_id" => "38"} Pipelines: [:browser] 10:02:55.868 [debug] QUERY OK source="media_items" db=0.1ms idle=1887.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" = ?) [1911765] 10:02:55.869 [debug] QUERY OK source="tasks" db=0.1ms idle=1887.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" [1911765] 10:02:55.869 [debug] QUERY OK source="sources" db=0.2ms idle=1887.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" = ?) [38] 10:02:55.869 [debug] QUERY OK source="settings" db=0.0ms idle=1173.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 [] 10:02:55.869 [debug] QUERY OK source="settings" db=0.0ms idle=171.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:02:55.869 [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 [] 10:02:55.870 [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] 10:02:55.871 [info] Sent 200 in 2ms 10:03:00.867 [info] GET /sources/38/media/1850728 10:03:00.867 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1850728", "source_id" => "38"} Pipelines: [:browser] 10:03:00.868 [debug] QUERY OK source="media_items" db=0.1ms idle=1887.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" = ?) [1850728] 10:03:00.868 [debug] QUERY OK source="tasks" db=0.1ms idle=1887.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" [1850728] 10:03:00.869 [debug] QUERY OK source="sources" db=0.2ms idle=1887.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" = ?) [38] 10:03:00.869 [debug] QUERY OK source="settings" db=0.0ms idle=1166.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:00.869 [debug] QUERY OK source="settings" db=0.0ms idle=164.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:00.869 [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 [] 10:03:00.870 [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] 10:03:00.870 [info] Sent 200 in 3ms 10:03:00.902 [info] {"source":"oban","duration":373,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:03:06.677 [info] {"source":"oban","duration":2527,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:06.955 [info] GET /sources/38/media/2074959 10:03:06.955 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2074959", "prevent_download" => "true", "source_id" => "38"} Pipelines: [:browser] 10:03:06.955 [debug] QUERY OK source="media_items" db=0.1ms idle=974.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" = ?) [2074959] 10:03:06.955 [debug] QUERY OK source="tasks" db=0.0ms idle=974.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" [2074959] 10:03:06.955 [debug] QUERY OK source="sources" db=0.1ms idle=974.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" = ?) [38] 10:03:06.956 [debug] QUERY OK source="settings" db=0.0ms idle=278.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:06.956 [debug] QUERY OK source="settings" db=0.0ms idle=243.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:06.956 [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 [] 10:03:06.957 [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] 10:03:06.957 [info] Sent 200 in 2ms 10:03:11.640 [info] GET /sources/17/media/12956 10:03:11.641 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12956", "prevent_download" => "true", "source_id" => "17"} Pipelines: [:browser] 10:03:11.641 [debug] QUERY OK source="media_items" db=0.1ms idle=1660.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" = ?) [12956] 10:03:11.641 [debug] QUERY OK source="tasks" db=0.0ms idle=1660.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" [12956] 10:03:11.641 [debug] QUERY OK source="sources" db=0.2ms idle=1660.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" = ?) [17] 10:03:11.642 [debug] QUERY OK source="settings" db=0.0ms idle=1660.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:11.642 [debug] QUERY OK source="settings" db=0.0ms idle=923.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:11.642 [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 [] 10:03:11.643 [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] 10:03:11.643 [info] Sent 200 in 2ms 10:03:16.657 [info] GET /sources/38/media/2020529 10:03:16.657 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2020529", "prevent_download" => "true", "source_id" => "38"} Pipelines: [:browser] 10:03:16.658 [debug] QUERY OK source="media_items" db=0.1ms idle=1676.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" = ?) [2020529] 10:03:16.658 [debug] QUERY OK source="tasks" db=0.1ms idle=1677.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" [2020529] 10:03:16.658 [debug] QUERY OK source="sources" db=0.1ms idle=1677.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" = ?) [38] 10:03:16.659 [debug] QUERY OK source="settings" db=0.1ms idle=1677.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:16.659 [debug] QUERY OK source="settings" db=0.0ms idle=934.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:16.659 [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 [] 10:03:16.659 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:03:16.660 [info] Sent 200 in 2ms 10:03:19.887 [info] GET /sources/38/media/2020529/force_download 10:03:19.887 [debug] QUERY OK source="settings" db=0.1ms idle=1906.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:19.887 [debug] QUERY OK source="settings" db=0.0ms idle=1906.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 [] 10:03:19.888 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:19.888 [error] #PID<0.190840.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/38/media/2020529/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/38/media/2020529/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2020529/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190840.0>, params: %{}, path_info: ["sources", "38", "media", "2020529", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/38/media/2020529/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqrN632LVAT_gASDsC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2020529/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/38/media/2020529/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2020529/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190840.0>, params: %{}, path_info: ["sources", "38", "media", "2020529", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:03:24.777 [info] GET /sources/17/media/12956/force_download 10:03:24.778 [debug] QUERY OK source="settings" db=0.1ms idle=1796.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:24.778 [debug] QUERY OK source="settings" db=0.0ms idle=1040.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:24.778 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:24.778 [error] #PID<0.190841.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/media/12956/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/17/media/12956/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12956/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190841.0>, params: %{}, path_info: ["sources", "17", "media", "12956", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/media/12956/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqrgI40OlCPNkASDtC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12956/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/media/12956/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12956/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190841.0>, params: %{}, path_info: ["sources", "17", "media", "12956", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} (truncated) 10:03:29.778 [info] GET /sources/22/media/307942/force_download 10:03:29.778 [debug] QUERY OK source="settings" db=0.1ms idle=1797.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 [] 10:03:29.778 [debug] QUERY OK source="settings" db=0.0ms idle=1797.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:29.778 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:29.779 [error] #PID<0.190842.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/307942/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/22/media/307942/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307942/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190842.0>, params: %{}, path_info: ["sources", "22", "media", "307942", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/307942/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqryxCcv7rbdsASDuC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307942/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/307942/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307942/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190842.0>, params: %{}, path_info: ["sources", "22", "media", "307942", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 10:03:33.770 [info] GET /sources/22/media/307942 10:03:33.770 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "307942", "prevent_download" => "true", "source_id" => "22"} Pipelines: [:browser] 10:03:33.770 [debug] QUERY OK source="media_items" db=0.1ms idle=1789.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" = ?) [307942] 10:03:33.771 [debug] QUERY OK source="tasks" db=0.0ms idle=1016.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" [307942] 10:03:33.771 [debug] QUERY OK source="sources" db=0.1ms idle=789.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" = ?) [22] 10:03:33.771 [debug] QUERY OK source="settings" db=0.0ms idle=790.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 [] 10:03:33.771 [debug] QUERY OK source="settings" db=0.0ms idle=15.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:33.771 [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 [] 10:03:33.772 [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] 10:03:33.773 [info] Sent 200 in 2ms 10:03:36.681 [info] {"source":"oban","duration":3164,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:38.657 [info] GET /sources/22/media/333782 10:03:38.657 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "333782", "prevent_download" => "true", "source_id" => "22"} Pipelines: [:browser] 10:03:38.657 [debug] QUERY OK source="media_items" db=0.1ms idle=1676.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" = ?) [333782] 10:03:38.658 [debug] QUERY OK source="tasks" db=0.1ms idle=1677.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" [333782] 10:03:38.658 [debug] QUERY OK source="sources" db=0.1ms idle=1677.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" = ?) [22] 10:03:38.658 [debug] QUERY OK source="settings" db=0.1ms idle=897.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:38.658 [debug] QUERY OK source="settings" db=0.1ms idle=677.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 [] 10:03:38.659 [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 [] 10:03:38.659 [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] 10:03:38.660 [info] Sent 200 in 3ms 10:03:43.661 [info] GET /sources/22/media/352748/force_download 10:03:43.662 [debug] QUERY OK source="settings" db=0.1ms idle=1680.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:43.662 [debug] QUERY OK source="settings" db=0.0ms idle=1680.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:43.662 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:43.662 [error] #PID<0.190853.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/352748/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/22/media/352748/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/352748/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190853.0>, params: %{}, path_info: ["sources", "22", "media", "352748", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/352748/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqsmfLgmg25wYASDzC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/352748/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/352748/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/352748/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190853.0>, params: %{}, path_info: ["sources", "22", "media", "352748", "force_download"], path_params: % (truncated) 10:03:48.663 [info] GET /sources/38/media/2302048/force_download 10:03:48.663 [debug] QUERY OK source="settings" db=0.1ms idle=1682.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:48.664 [debug] QUERY OK source="settings" db=0.1ms idle=1682.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:48.664 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:48.664 [error] #PID<0.190855.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 8) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/38/media/2302048/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/38/media/2302048/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2302048/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190855.0>, params: %{}, path_info: ["sources", "38", "media", "2302048", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/38/media/2302048/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqs5Hr4CcpkRwASD0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2302048/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/38/media/2302048/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2302048/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190855.0>, params: %{}, path_info: ["sources", "38", "media", "2302048", "force_download"], path_ (truncated) 10:03:53.666 [info] GET /sources/22/media/307944/force_download 10:03:53.666 [debug] QUERY OK source="settings" db=0.1ms idle=1685.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:53.666 [debug] QUERY OK source="settings" db=0.0ms idle=1685.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:53.667 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:53.667 [error] #PID<0.190856.0> running PinchflatWeb.Endpoint (connection #PID<0.190835.0>, stream id 9) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/307944/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/22/media/307944/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307944/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190856.0>, params: %{}, path_info: ["sources", "22", "media", "307944", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/307944/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqtLwdPG2D81gASD1C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307944/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/307944/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190835.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307944/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44964}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190856.0>, params: %{}, path_info: ["sources", "22", "media", "307944", "force_download"], path_params: % (truncated) 10:03:58.683 [info] GET /sources/46/media/2323363/force_download 10:03:58.684 [debug] QUERY OK source="settings" db=0.1ms idle=1703.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:58.684 [debug] QUERY OK source="settings" db=0.0ms idle=1703.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 [] 10:03:58.684 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:58.684 [error] #PID<0.190858.0> running PinchflatWeb.Endpoint (connection #PID<0.190857.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2323363/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/46/media/2323363/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190857.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2323363/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36780}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190858.0>, params: %{}, path_info: ["sources", "46", "media", "2323363", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2323363/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqtecuSPsDsE0ASD2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190857.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2323363/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36780}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2323363/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190857.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2323363/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36780}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190858.0>, params: %{}, path_info: ["sources", "46", "media", "2323363", "force_download"], path_ (truncated) 10:04:00.903 [info] {"source":"oban","duration":262,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:04:03.689 [info] GET /sources/45/media/2268722/force_download 10:04:03.690 [debug] QUERY OK source="settings" db=0.2ms idle=1708.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 [] 10:04:03.690 [debug] QUERY OK source="settings" db=0.0ms idle=1708.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:03.690 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:03.690 [error] #PID<0.190860.0> running PinchflatWeb.Endpoint (connection #PID<0.190859.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2268722/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/45/media/2268722/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2268722/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190860.0>, params: %{}, path_info: ["sources", "45", "media", "2268722", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2268722/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqtxGLmXiAy9oASD3C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2268722/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2268722/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2268722/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190860.0>, params: %{}, path_info: ["sources", "45", "media", "2268722", "force_download"], path_ (truncated) 10:04:06.684 [info] {"source":"oban","duration":2694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:08.691 [info] GET /sources/38/media/2074959/force_download 10:04:08.691 [debug] QUERY OK source="settings" db=0.2ms idle=1710.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 [] 10:04:08.691 [debug] QUERY OK source="settings" db=0.1ms idle=883.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:08.692 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:08.692 [error] #PID<0.190861.0> running PinchflatWeb.Endpoint (connection #PID<0.190859.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/38/media/2074959/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/38/media/2074959/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2074959/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190861.0>, params: %{}, path_info: ["sources", "38", "media", "2074959", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/38/media/2074959/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsquDuoigpOW8YASD4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2074959/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/38/media/2074959/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/2074959/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190861.0>, params: %{}, path_info: ["sources", "38", "media", "2074959", "force_download"], path_ (truncated) 10:04:13.692 [info] GET /sources/22/media/315242/force_download 10:04:13.692 [debug] QUERY OK source="settings" db=0.1ms idle=1711.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:13.693 [debug] QUERY OK source="settings" db=0.1ms idle=1711.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:13.693 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:13.693 [error] #PID<0.190864.0> running PinchflatWeb.Endpoint (connection #PID<0.190859.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/315242/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/22/media/315242/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/315242/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190864.0>, params: %{}, path_info: ["sources", "22", "media", "315242", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/315242/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsquWXEcXyIt3EASD6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/315242/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/315242/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/315242/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 36574}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190864.0>, params: %{}, path_info: ["sources", "22", "media", "315242", "force_download"], path_params: % (truncated) 10:04:18.697 [info] GET /sources/26/media/327250/force_download 10:04:18.697 [debug] QUERY OK source="settings" db=0.1ms idle=1716.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 [] 10:04:18.697 [debug] QUERY OK source="settings" db=0.0ms idle=1716.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:18.697 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:18.697 [error] #PID<0.190866.0> running PinchflatWeb.Endpoint (connection #PID<0.190865.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/26/media/327250/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/26/media/327250/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327250/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190866.0>, params: %{}, path_info: ["sources", "26", "media", "327250", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/26/media/327250/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqupASCvOf3IoASD7C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327250/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/26/media/327250/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327250/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 34246}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdkZwSEFnZnRJUENtOFRNQXpCX0x0VHh3.4MajzgEQjbJTFKYSL-HRnuq5RAEFReTt6c5mYIuWzC0" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190866.0>, params: %{}, path_info: ["sources", "26", "media", "327250", "force_download"], path_params: % (truncated) 10:04:19.829 [info] {"args":{"id":2342586},"id":299250,"meta":{},"system_time":1777561459829642728,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:04:19.830 [debug] QUERY OK source="media_items" db=0.4ms idle=1132.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" = ?) [2342586] 10:04:19.830 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:04:19.830 [debug] QUERY OK source="sources" db=0.3ms idle=1132.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" = ?) [43] 10:04:19.831 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1008.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] 10:04:19.831 [debug] QUERY OK source="media_items" db=0.3ms 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 [2342586] 10:04:19.832 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [2342586] 10:04:19.832 [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] 10:04:19.832 [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 [] 10:04:19.832 [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 [] 10:04:19.833 [debug] Running yt-dlp command for action: get_downloadable_status 10:04:19.834 [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 [] 10:04:19.834 [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 [] 10:04:19.834 [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 [] 10:04:19.834 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=G9A4oHW0fAk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/56/7a/567ae07c3334012f8c6b7e3567f0a4e8b658b60e23fa5f57c538eca90a4c67a7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:04:21.719 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=G9A4oHW0fAk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/56/7a/567ae07c3334012f8c6b7e3567f0a4e8b658b60e23fa5f57c538eca90a4c67a7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] G9A4oHW0fAk: Join this channel to get access to members-only content like this video, and other exclusive perks. 10:04:21.719 [error] yt-dlp download error for media item #2342586: "ERROR: [youtube] G9A4oHW0fAk: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 10:04:21.720 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2342586},"id":299250,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1890219,"event":"job:exception","queue_time":232547,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:04:24.393 [info] GET /sources/43/media/2775036/force_download 10:04:24.394 [debug] QUERY OK source="settings" db=0.1ms idle=1412.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:24.394 [debug] QUERY OK source="settings" db=0.1ms idle=1413.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:24.394 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:24.394 [error] #PID<0.190871.0> running PinchflatWeb.Endpoint (connection #PID<0.190870.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2775036/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/43/media/2775036/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2775036/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190871.0>, params: %{}, path_info: ["sources", "43", "media", "2775036", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2775036/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqu-OZu_nvQ3cASD-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.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2775036/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2775036/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2775036/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190871.0>, params: %{}, path_info: ["sources", "43", "media", "2775036", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:24.835 [info] {"args":{"id":1522965},"id":299247,"meta":{},"system_time":1777561464835653167,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:04:24.836 [debug] QUERY OK source="media_items" db=0.1ms idle=1007.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" = ?) [1522965] 10:04:24.836 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:04:24.836 [debug] QUERY OK source="sources" db=0.2ms idle=442.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" = ?) [43] 10:04:24.836 [debug] QUERY OK source="media_profiles" db=0.1ms idle=442.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] 10:04:24.837 [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 [1522965] 10:04:24.838 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1522965] 10:04:24.838 [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] 10:04:24.838 [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 [] 10:04:24.838 [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 [] 10:04:24.839 [debug] Running yt-dlp command for action: get_downloadable_status 10:04:24.839 [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 [] 10:04:24.839 [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 [] 10:04:24.840 [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 [] 10:04:24.840 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=53gTTzOwf8g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/df/38/df38f5e98544fe0ba89ddc02cff69785b984ea1e58a48bac175292d52bba24a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:04:26.920 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=53gTTzOwf8g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/df/38/df38f5e98544fe0ba89ddc02cff69785b984ea1e58a48bac175292d52bba24a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 53gTTzOwf8g: Join this channel to get access to members-only content like this video, and other exclusive perks. 10:04:26.920 [error] yt-dlp download error for media item #1522965: "ERROR: [youtube] 53gTTzOwf8g: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 10:04:26.921 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1522965},"id":299247,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2085524,"event":"job:exception","queue_time":272626,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:04:29.282 [info] GET /sources/27/media/1291853/force_download 10:04:29.282 [debug] QUERY OK source="settings" db=0.1ms idle=1301.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 [] 10:04:29.282 [debug] QUERY OK source="settings" db=0.2ms idle=1301.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:29.282 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:29.283 [error] #PID<0.190875.0> running PinchflatWeb.Endpoint (connection #PID<0.190870.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/1291853/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/27/media/1291853/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1291853/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190875.0>, params: %{}, path_info: ["sources", "27", "media", "1291853", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/1291853/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqvQb6Z39g3B4ASEAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1291853/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/1291853/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190870.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1291853/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58520}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190875.0>, params: %{}, path_info: ["sources", "27", "media", "1291853", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:34.293 [info] GET /sources/27/media/2706026/force_download 10:04:34.293 [debug] QUERY OK source="settings" db=0.1ms idle=1312.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 [] 10:04:34.293 [debug] QUERY OK source="settings" db=0.0ms idle=1312.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:34.293 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:34.294 [error] #PID<0.190878.0> running PinchflatWeb.Endpoint (connection #PID<0.190877.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/2706026/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/27/media/2706026/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2706026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190878.0>, params: %{}, path_info: ["sources", "27", "media", "2706026", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/2706026/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqvjGpztrSxMQASEBC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2706026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/2706026/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/2706026/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190878.0>, params: %{}, path_info: ["sources", "27", "media", "2706026", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:36.688 [info] {"source":"oban","duration":3342,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:39.295 [info] GET /sources/43/media/2514786/force_download 10:04:39.296 [debug] QUERY OK source="settings" db=0.1ms idle=1314.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:39.296 [debug] QUERY OK source="settings" db=0.0ms idle=1315.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:39.296 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:39.296 [error] #PID<0.190879.0> running PinchflatWeb.Endpoint (connection #PID<0.190877.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2514786/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/43/media/2514786/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2514786/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190879.0>, params: %{}, path_info: ["sources", "43", "media", "2514786", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2514786/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqv1vVQouVkaMASECC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2514786/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/media/2514786/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190877.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2514786/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 42282}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190879.0>, params: %{}, path_info: ["sources", "43", "media", "2514786", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:44.299 [info] GET /sources/52/media/2778445/force_download 10:04:44.299 [debug] QUERY OK source="settings" db=0.1ms idle=1318.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 [] 10:04:44.299 [debug] QUERY OK source="settings" db=0.0ms idle=1318.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:44.299 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:44.299 [error] #PID<0.190884.0> running PinchflatWeb.Endpoint (connection #PID<0.190883.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2778445/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/52/media/2778445/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2778445/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190884.0>, params: %{}, path_info: ["sources", "52", "media", "2778445", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2778445/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqwIYQYkh_AykASEEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2778445/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2778445/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2778445/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190884.0>, params: %{}, path_info: ["sources", "52", "media", "2778445", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:49.299 [info] GET /sources/52/media/2108858/force_download 10:04:49.300 [debug] QUERY OK source="settings" db=0.1ms idle=1318.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:49.300 [debug] QUERY OK source="settings" db=0.0ms idle=1319.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:49.300 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:49.300 [error] #PID<0.190885.0> running PinchflatWeb.Endpoint (connection #PID<0.190883.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2108858/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/52/media/2108858/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2108858/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190885.0>, params: %{}, path_info: ["sources", "52", "media", "2108858", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2108858/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqwbAfxQnEM-cASEFC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2108858/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2108858/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2108858/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190885.0>, params: %{}, path_info: ["sources", "52", "media", "2108858", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:54.302 [info] GET /sources/52/media/2722298/force_download 10:04:54.303 [debug] QUERY OK source="settings" db=0.1ms idle=1322.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:54.303 [debug] QUERY OK source="settings" db=0.0ms idle=1322.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 [] 10:04:54.303 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:54.303 [error] #PID<0.190886.0> running PinchflatWeb.Endpoint (connection #PID<0.190883.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/media/2722298/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/52/media/2722298/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2722298/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190886.0>, params: %{}, path_info: ["sources", "52", "media", "2722298", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/media/2722298/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqwtpWvDeSJ2UASEGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2722298/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/media/2722298/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190883.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/media/2722298/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 59470}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190886.0>, params: %{}, path_info: ["sources", "52", "media", "2722298", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:04:59.307 [info] GET /sources/30/media/2539715/force_download 10:04:59.307 [debug] QUERY OK source="settings" db=0.1ms idle=1326.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 [] 10:04:59.307 [debug] QUERY OK source="settings" db=0.0ms idle=1326.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:04:59.307 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:04:59.307 [error] #PID<0.190888.0> running PinchflatWeb.Endpoint (connection #PID<0.190887.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2539715/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/30/media/2539715/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190887.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2539715/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37052}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190888.0>, params: %{}, path_info: ["sources", "30", "media", "2539715", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2539715/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsqxASbknenneQASEHC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190887.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2539715/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37052}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/media/2539715/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190887.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2539715/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37052}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190888.0>, params: %{}, path_info: ["sources", "30", "media", "2539715", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:05:00.904 [info] {"source":"oban","duration":146,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:05:04.556 [info] GET /sources/25/media/2523941 10:05:04.556 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2523941", "prevent_download" => "true", "source_id" => "25"} Pipelines: [:browser] 10:05:04.557 [debug] QUERY OK source="media_items" db=0.1ms idle=1575.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" = ?) [2523941] 10:05:04.557 [debug] QUERY OK source="tasks" db=0.1ms idle=688.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" [2523941] 10:05:04.557 [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" = ?) [25] 10:05:04.558 [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 [] 10:05:04.558 [debug] QUERY OK source="settings" db=0.0ms idle=577.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 [] 10:05:04.558 [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 [] 10:05:04.559 [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] 10:05:04.559 [info] Sent 200 in 3ms 10:05:06.692 [info] {"source":"oban","duration":3449,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:09.449 [info] GET /sources/30/media/2555753 10:05:09.449 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2555753", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 10:05:09.449 [debug] QUERY OK source="media_items" db=0.1ms idle=1468.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" = ?) [2555753] 10:05:09.450 [debug] QUERY OK source="tasks" db=0.1ms idle=1469.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" [2555753] 10:05:09.450 [debug] QUERY OK source="sources" db=0.2ms idle=1469.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" = ?) [30] 10:05:09.450 [debug] QUERY OK source="settings" db=0.0ms idle=1469.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 [] 10:05:09.450 [debug] QUERY OK source="settings" db=0.0ms idle=576.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:05:09.451 [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 [] 10:05:09.451 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:05:09.452 [info] Sent 200 in 2ms 10:05:14.452 [info] GET /sources/43/media/2703391 10:05:14.452 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2703391", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 10:05:14.452 [debug] QUERY OK source="media_items" db=0.2ms idle=1471.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" = ?) [2703391] 10:05:14.453 [debug] QUERY OK source="tasks" db=0.1ms idle=1472.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" [2703391] 10:05:14.453 [debug] QUERY OK source="sources" db=0.2ms idle=1472.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" = ?) [43] 10:05:14.453 [debug] QUERY OK source="settings" db=0.0ms idle=1472.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:05:14.453 [debug] QUERY OK source="settings" db=0.0ms idle=574.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 [] 10:05:14.454 [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 [] 10:05:14.454 [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] 10:05:14.455 [info] Sent 200 in 3ms 10:05:20.211 [info] GET /media/a87e9434-6c6e-4946-bed5-b33759dcbd7e/stream 10:05:20.211 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a87e9434-6c6e-4946-bed5-b33759dcbd7e"} Pipelines: [:maybe_basic_auth] 10:05:20.211 [debug] QUERY OK source="media_items" db=0.5ms idle=325.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" = ?) ["a87e9434-6c6e-4946-bed5-b33759dcbd7e"] 10:05:20.212 [debug] Invalid range request for media item: a87e9434-6c6e-4946-bed5-b33759dcbd7e - serving full file 10:05:20.212 [info] Sent 200 in 1ms 10:05:36.696 [info] {"source":"oban","duration":3405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:41.747 [info] GET /media/ae8492cb-4071-44c7-9a43-666a483eb7d1/stream 10:05:41.747 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "ae8492cb-4071-44c7-9a43-666a483eb7d1"} Pipelines: [:maybe_basic_auth] 10:05:41.748 [debug] QUERY OK source="media_items" db=0.7ms idle=1766.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" = ?) ["ae8492cb-4071-44c7-9a43-666a483eb7d1"] 10:05:41.748 [debug] Invalid range request for media item: ae8492cb-4071-44c7-9a43-666a483eb7d1 - serving full file 10:05:41.748 [info] Sent 200 in 1ms 10:05:51.652 [info] GET /media/a34812e3-8906-4989-ac5d-0b4375e511b8/stream 10:05:51.652 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a34812e3-8906-4989-ac5d-0b4375e511b8"} Pipelines: [:maybe_basic_auth] 10:05:51.653 [debug] QUERY OK source="media_items" db=0.8ms idle=1576.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" = ?) ["a34812e3-8906-4989-ac5d-0b4375e511b8"] 10:05:51.653 [debug] Invalid range request for media item: a34812e3-8906-4989-ac5d-0b4375e511b8 - serving full file 10:05:51.653 [info] Sent 200 in 1ms 10:06:00.905 [info] {"source":"oban","duration":404,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:06:06.700 [info] {"source":"oban","duration":3489,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:06.760 [info] GET /media/d3a4c89d-9684-4e86-86b3-28f9dbc7427e/stream 10:06:06.760 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "d3a4c89d-9684-4e86-86b3-28f9dbc7427e"} Pipelines: [:maybe_basic_auth] 10:06:06.761 [debug] QUERY OK source="media_items" db=0.9ms idle=672.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" = ?) ["d3a4c89d-9684-4e86-86b3-28f9dbc7427e"] 10:06:06.761 [debug] Invalid range request for media item: d3a4c89d-9684-4e86-86b3-28f9dbc7427e - serving full file 10:06:06.761 [info] Sent 200 in 1ms 10:06:13.800 [info] GET /media/9a42ffc1-c776-4edf-b186-328e9d680715/stream 10:06:13.800 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "9a42ffc1-c776-4edf-b186-328e9d680715"} Pipelines: [:maybe_basic_auth] 10:06:13.801 [debug] QUERY OK source="media_items" db=0.5ms idle=1639.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" = ?) ["9a42ffc1-c776-4edf-b186-328e9d680715"] 10:06:13.801 [debug] Invalid range request for media item: 9a42ffc1-c776-4edf-b186-328e9d680715 - serving full file 10:06:13.801 [info] Sent 200 in 1ms 10:06:25.655 [info] GET /sources/27/media/1322480 10:06:25.656 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1322480", "source_id" => "27"} Pipelines: [:browser] 10:06:25.656 [debug] QUERY OK source="media_items" db=0.1ms idle=1484.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" = ?) [1322480] 10:06:25.656 [debug] QUERY OK source="tasks" db=0.2ms idle=1484.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" [1322480] 10:06:25.656 [debug] QUERY OK source="sources" db=0.2ms idle=1476.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" = ?) [27] 10:06:25.657 [debug] QUERY OK source="settings" db=0.0ms idle=485.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:25.657 [debug] QUERY OK source="settings" db=0.0ms idle=475.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:25.657 [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 [] 10:06:25.657 [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] 10:06:25.658 [info] Sent 200 in 2ms 10:06:29.459 [info] GET /sources/45/media/2308517 10:06:29.459 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2308517", "source_id" => "45"} Pipelines: [:browser] 10:06:29.459 [debug] QUERY OK source="media_items" db=0.1ms idle=288.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" = ?) [2308517] 10:06:29.460 [debug] QUERY OK source="tasks" db=0.1ms idle=289.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" [2308517] 10:06:29.460 [debug] QUERY OK source="sources" db=0.2ms idle=289.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" = ?) [45] 10:06:29.460 [debug] QUERY OK source="settings" db=0.0ms idle=289.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:29.460 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:06:29.461 [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 [] 10:06:29.461 [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] 10:06:29.462 [info] Sent 200 in 3ms 10:06:34.465 [info] GET /sources/38/media/2003157/edit 10:06:34.465 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2003157", "source_id" => "38"} Pipelines: [:browser] 10:06:34.465 [debug] QUERY OK source="media_items" db=0.1ms idle=1294.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" = ?) [2003157] 10:06:34.465 [debug] QUERY OK source="settings" db=0.0ms idle=1294.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:34.465 [debug] QUERY OK source="settings" db=0.0ms idle=1294.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:34.466 [debug] QUERY OK source="settings" db=0.0ms idle=1275.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 [] 10:06:34.466 [info] Sent 200 in 1ms 10:06:36.703 [info] {"source":"oban","duration":2570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:39.465 [info] GET /sources/55/media/1885245 10:06:39.465 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1885245", "source_id" => "55"} Pipelines: [:browser] 10:06:39.466 [debug] QUERY OK source="media_items" db=0.1ms 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" = ?) [1885245] 10:06:39.466 [debug] QUERY OK source="tasks" db=0.1ms idle=1295.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" [1885245] 10:06:39.466 [debug] QUERY OK source="sources" db=0.2ms idle=1295.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" = ?) [55] 10:06:39.466 [debug] QUERY OK source="settings" db=0.0ms idle=1270.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 [] 10:06:39.467 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:06:39.467 [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 [] 10:06:39.467 [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] 10:06:39.468 [info] Sent 200 in 2ms 10:06:49.790 [info] GET /sources/45/media/2723981 10:06:49.790 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2723981", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 10:06:49.791 [debug] QUERY OK source="media_items" db=0.2ms idle=619.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" = ?) [2723981] 10:06:49.791 [debug] QUERY OK source="tasks" db=0.1ms idle=620.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" [2723981] 10:06:49.791 [debug] QUERY OK source="sources" db=0.2ms idle=620.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" = ?) [45] 10:06:49.792 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=620.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" = ?) [278189] 10:06:49.792 [debug] QUERY OK source="settings" db=0.0ms idle=580.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:49.792 [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 [] 10:06:49.792 [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 [] 10:06:49.793 [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] 10:06:49.794 [info] Sent 200 in 3ms 10:06:54.676 [info] GET /media/78ab36fa-1559-4e59-aa10-1270092af6f9/stream 10:06:54.676 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "78ab36fa-1559-4e59-aa10-1270092af6f9"} Pipelines: [:maybe_basic_auth] 10:06:54.677 [debug] QUERY OK source="media_items" db=0.6ms idle=1505.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" = ?) ["78ab36fa-1559-4e59-aa10-1270092af6f9"] 10:06:54.677 [debug] Invalid range request for media item: 78ab36fa-1559-4e59-aa10-1270092af6f9 - serving full file 10:06:54.677 [info] Sent 200 in 1ms 10:06:58.623 [info] {"args":{"id":30},"id":300684,"meta":{},"system_time":1777561618623385750,"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"]} 10:06:58.624 [debug] QUERY OK source="sources" db=0.4ms idle=153.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" = ?) [30] 10:06:58.624 [debug] QUERY OK source="settings" db=0.4ms idle=153.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:58.629 [debug] QUERY OK source="media_items" db=4.6ms idle=154.3ms 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")))) [30] 10:06:58.630 [debug] QUERY OK source="media_items" db=0.6ms idle=156.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 10:06:58.630 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:06:58.630 [debug] QUERY OK source="settings" db=0.0ms idle=6.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:58.630 [debug] QUERY OK source="settings" db=0.0ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:58.635 [debug] QUERY OK source="media_items" db=2.8ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 10:06:58.637 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:06:58.637 [debug] Current batch of media processed. Will check again in 1000ms 10:06:58.637 [debug] QUERY OK source="settings" db=0.0ms idle=7.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 [] 10:06:58.637 [debug] QUERY OK source="settings" db=0.0ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:58.637 [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 [] 10:06:58.638 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/ea/84/ea841c574ad868e1ed6c697436996dd8f96d4e2fecc586f18d01b19d0157c9ea.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/da/69/da6938c36d765e7156e3b7f3e460a94bd884404eea184b6a752dc06144c74b4a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:06:59.638 [debug] Current batch of media processed. Will check again in 1000ms 10:07:00.639 [debug] Current batch of media processed. Will check again in 1000ms 10:07:00.907 [info] {"source":"oban","duration":218,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:07:01.640 [debug] Current batch of media processed. Will check again in 1000ms 10:07:02.641 [debug] Current batch of media processed. Will check again in 1000ms 10:07:03.642 [debug] Current batch of media processed. Will check again in 1000ms 10:07:04.643 [debug] Current batch of media processed. Will check again in 1000ms 10:07:04.788 [info] GET /sources/30/media/2777718 10:07:04.788 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2777718", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 10:07:04.788 [debug] QUERY OK source="media_items" db=0.1ms 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 WHERE (m0."id" = ?) [2777718] 10:07:04.789 [debug] QUERY OK source="sources" db=0.1ms idle=251.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" = ?) [30] 10:07:04.789 [debug] QUERY OK source="tasks" db=0.7ms idle=251.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" [2777718] 10:07:04.790 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=252.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 (?,?)) [284613, 286699] 10:07:04.790 [debug] QUERY OK source="settings" db=0.0ms idle=246.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 [] 10:07:04.790 [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 [] 10:07:04.790 [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 [] 10:07:04.791 [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] 10:07:04.792 [info] Sent 200 in 4ms 10:07:05.644 [debug] Current batch of media processed. Will check again in 1000ms 10:07:06.645 [debug] Current batch of media processed. Will check again in 1000ms 10:07:06.707 [info] {"source":"oban","duration":3213,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:07.646 [debug] Current batch of media processed. Will check again in 1000ms 10:07:08.647 [debug] Current batch of media processed. Will check again in 1000ms 10:07:09.648 [debug] Current batch of media processed. Will check again in 1000ms 10:07:09.680 [info] GET /sources/52/media/2770388 10:07:09.680 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2770388", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 10:07:09.680 [debug] QUERY OK source="media_items" db=0.2ms idle=1143.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" = ?) [2770388] 10:07:09.681 [debug] QUERY OK source="tasks" db=0.2ms idle=1144.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" [2770388] 10:07:09.681 [debug] QUERY OK source="sources" db=0.3ms idle=1144.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" = ?) [52] 10:07:09.682 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1133.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [283395, 283422, 283439, 283455, 283471, 283486, 283501, 283516, 283530, 283546, 283562, 283577, 283592, 283607, 283621, 283636, 283653, 283668, 285078] 10:07:09.682 [debug] QUERY OK source="settings" db=0.0ms idle=133.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:09.682 [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 [] 10:07:09.683 [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 [] 10:07:09.683 [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] 10:07:09.685 [info] Sent 200 in 5ms 10:07:10.649 [debug] Current batch of media processed. Will check again in 1000ms 10:07:11.650 [debug] Current batch of media processed. Will check again in 1000ms 10:07:12.651 [debug] Current batch of media processed. Will check again in 1000ms 10:07:13.652 [debug] Current batch of media processed. Will check again in 1000ms 10:07:14.653 [debug] Current batch of media processed. Will check again in 1000ms 10:07:15.654 [debug] Current batch of media processed. Will check again in 1000ms 10:07:15.922 [info] GET /sources/25/media/2359890 10:07:15.923 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2359890", "source_id" => "25"} Pipelines: [:browser] 10:07:15.923 [debug] QUERY OK source="media_items" db=0.2ms idle=386.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" = ?) [2359890] 10:07:15.923 [debug] QUERY OK source="tasks" db=0.1ms idle=386.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" [2359890] 10:07:15.923 [debug] QUERY OK source="sources" db=0.2ms idle=386.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" = ?) [25] 10:07:15.924 [debug] QUERY OK source="settings" db=0.0ms idle=387.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:15.924 [debug] QUERY OK source="settings" db=0.0ms idle=368.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:15.924 [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 [] 10:07:15.925 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:15.925 [info] Sent 200 in 2ms 10:07:16.655 [debug] Current batch of media processed. Will check again in 1000ms 10:07:17.656 [debug] Current batch of media processed. Will check again in 1000ms 10:07:18.657 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1328, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", "id" => "npKb9UAxDxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npKb9UAxDxQ", "playlist_index" => 1, "timestamp" => 1777483828, "title" => "The Future Of KDE Plasma Looks Incredible", "upload_date" => "20260429"} 10:07:18.657 [debug] QUERY OK source="sources" db=0.2ms idle=1120.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 (?)) [30] 10:07:18.658 [debug] QUERY OK source="sources" db=0.1ms idle=1121.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" = ?) [30] 10:07:18.663 [debug] QUERY OK source="media_items" db=4.5ms idle=1121.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 10:07:18.664 [debug] QUERY OK source="media_items" db=1.0ms idle=1105.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "f2c45f1a-600c-4234-9989-bda0032d0c0c", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 15:07:18Z], ~U[2026-04-30 15:07:18Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 10:07:18.665 [debug] QUERY OK source="sources" db=0.6ms idle=106.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" = ?) [30] 10:07:18.665 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:18.666 [debug] QUERY OK source="media_items" db=0.3ms 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 [2838902] 10:07:18.666 [debug] Current batch of media processed. Will check again in 1000ms 10:07:19.667 [debug] Current batch of media processed. Will check again in 1000ms 10:07:20.668 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1567, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", "id" => "lIK4hKCXZHs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lIK4hKCXZHs", "playlist_index" => 2, "timestamp" => 1777397422, "title" => "Valve has Cooked Up Something Amazing", "upload_date" => "20260428"} 10:07:20.668 [debug] QUERY OK source="sources" db=0.2ms idle=131.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 (?)) [30] 10:07:20.669 [debug] QUERY OK source="sources" db=0.1ms idle=131.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" = ?) [30] 10:07:20.673 [debug] QUERY OK source="media_items" db=4.3ms idle=132.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 10:07:20.675 [debug] QUERY OK source="media_items" db=1.2ms idle=136.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "84ff011c-0c38-42d9-ac65-2a044d90acf3", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 15:07:20Z], ~U[2026-04-30 15:07:20Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 10:07:20.676 [debug] QUERY OK source="sources" db=0.1ms idle=113.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" = ?) [30] 10:07:20.676 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:20.676 [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 [2831238] 10:07:20.676 [debug] Current batch of media processed. Will check again in 1000ms 10:07:20.686 [info] GET /sources/17/media/314734 10:07:20.686 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "314734", "source_id" => "17"} Pipelines: [:browser] 10:07:20.687 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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" = ?) [314734] 10:07:20.687 [debug] QUERY OK source="tasks" db=0.1ms idle=11.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" [314734] 10:07:20.687 [debug] QUERY OK source="sources" db=0.1ms idle=11.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" = ?) [17] 10:07:20.687 [debug] QUERY OK source="settings" db=0.0ms idle=11.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 [] 10:07:20.688 [debug] QUERY OK source="settings" db=0.0ms idle=11.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:20.688 [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 [] 10:07:20.688 [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] 10:07:20.689 [info] Sent 200 in 3ms 10:07:21.677 [debug] Current batch of media processed. Will check again in 1000ms 10:07:22.678 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1123, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", "id" => "tLKOH-CUWyI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tLKOH-CUWyI", "playlist_index" => 3, "timestamp" => 1777311030, "title" => "Protect Your Linux Desktop From Malicious USB Devices", "upload_date" => "20260427"} 10:07:22.679 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 10:07:22.679 [debug] QUERY OK source="sources" db=0.1ms idle=142.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" = ?) [30] 10:07:22.684 [debug] QUERY OK source="media_items" db=4.7ms idle=142.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 10:07:22.687 [debug] QUERY OK source="media_items" db=2.6ms idle=147.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "384cbdf2-1ca5-4945-8611-7d98d521681b", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 15:07:22Z], ~U[2026-04-30 15:07:22Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 10:07:22.687 [debug] QUERY OK source="sources" db=0.1ms idle=123.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" = ?) [30] 10:07:22.688 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:22.688 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [2823571] 10:07:22.688 [debug] Current batch of media processed. Will check again in 1000ms 10:07:23.689 [debug] Current batch of media processed. Will check again in 1000ms 10:07:24.485 [info] GET /sources/55/media/2331681/edit 10:07:24.485 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2331681", "source_id" => "55"} Pipelines: [:browser] 10:07:24.486 [debug] QUERY OK source="media_items" db=0.1ms idle=1798.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" = ?) [2331681] 10:07:24.486 [debug] QUERY OK source="settings" db=0.0ms idle=1798.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 [] 10:07:24.486 [debug] QUERY OK source="settings" db=0.0ms idle=1798.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 [] 10:07:24.486 [debug] QUERY OK source="settings" db=0.0ms idle=1798.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 [] 10:07:24.487 [info] Sent 200 in 1ms 10:07:24.690 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1104, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", "id" => "989vCMg3Qv8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=989vCMg3Qv8", "playlist_index" => 4, "timestamp" => 1777224603, "title" => "One Maintainer Is All It Takes To Break A Project", "upload_date" => "20260426"} 10:07:24.690 [debug] QUERY OK source="sources" db=0.1ms idle=204.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 (?)) [30] 10:07:24.690 [debug] QUERY OK source="sources" db=0.1ms idle=204.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" = ?) [30] 10:07:24.695 [debug] QUERY OK source="media_items" db=4.5ms idle=204.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 10:07:24.697 [debug] QUERY OK source="media_items" db=1.0ms idle=209.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "65a1fa90-d345-4cb8-9291-16f4646e3c35", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 15:07:24Z], ~U[2026-04-30 15:07:24Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 10:07:24.697 [debug] QUERY OK source="sources" db=0.1ms idle=129.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" = ?) [30] 10:07:24.697 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 10:07:24.698 [debug] QUERY OK source="media_items" db=0.2ms 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 [2816002] 10:07:24.698 [debug] Current batch of media processed. Will check again in 1000ms 10:07:25.699 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 968, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", "id" => "kvMBenjrbOA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kvMBenjrbOA", "playlist_index" => 5, "timestamp" => 1777138210, "title" => "There's No Way This Web Extension Is Real", "upload_date" => "20260425"} 10:07:25.699 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [30] 10:07:25.700 [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" = ?) [30] 10:07:25.704 [debug] QUERY OK source="media_items" db=4.5ms idle=1002.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 10:07:25.706 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "d1d02666-f259-4c3f-9fc1-778a293441d3", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 15:07:25Z], ~U[2026-04-30 15:07:25Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 10:07:25.706 [debug] QUERY OK source="sources" db=0.1ms idle=136.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" = ?) [30] 10:07:25.706 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:25.707 [debug] QUERY OK source="media_items" db=0.2ms 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 [2808334] 10:07:25.707 [debug] Current batch of media processed. Will check again in 1000ms 10:07:26.708 [debug] Current batch of media processed. Will check again in 1000ms 10:07:27.709 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 926, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", "id" => "I4sP8K8c6yc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I4sP8K8c6yc", "playlist_index" => 6, "timestamp" => 1776965404, "title" => "Oxygen Squared The KDE Design We Never Had", "upload_date" => "20260423"} 10:07:27.710 [debug] QUERY OK source="sources" db=0.2ms idle=172.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 (?)) [30] 10:07:27.710 [debug] QUERY OK source="sources" db=0.0ms idle=172.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" = ?) [30] 10:07:27.715 [debug] QUERY OK source="media_items" db=4.5ms idle=173.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 10:07:27.716 [debug] QUERY OK source="media_items" db=1.1ms idle=177.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "e7966af0-3596-42da-a225-ddfaa4d051d9", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 15:07:27Z], ~U[2026-04-30 15:07:27Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 10:07:27.716 [debug] QUERY OK source="sources" db=0.1ms idle=143.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" = ?) [30] 10:07:27.717 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:27.717 [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 [2793046] 10:07:27.717 [debug] Current batch of media processed. Will check again in 1000ms 10:07:28.718 [debug] Current batch of media processed. Will check again in 1000ms 10:07:29.378 [info] GET /sources/55/media/1885245/edit 10:07:29.378 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1885245", "source_id" => "55"} Pipelines: [:browser] 10:07:29.379 [debug] QUERY OK source="media_items" db=0.1ms idle=1662.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" = ?) [1885245] 10:07:29.379 [debug] QUERY OK source="settings" db=0.0ms idle=1662.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 [] 10:07:29.379 [debug] QUERY OK source="settings" db=0.0ms idle=1662.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 [] 10:07:29.379 [debug] QUERY OK source="settings" db=0.0ms idle=1662.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 [] 10:07:29.380 [info] Sent 200 in 1ms 10:07:29.719 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1136, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", "id" => "7YPnh6dlyQQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "playlist_index" => 7, "timestamp" => 1776879004, "title" => "IPv8 Changes Everything We Know About IP", "upload_date" => "20260422"} 10:07:29.720 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=340.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 (?)) [30] 10:07:29.720 [debug] QUERY OK source="sources" db=0.1ms idle=341.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" = ?) [30] 10:07:29.725 [debug] QUERY OK source="media_items" db=4.3ms idle=341.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 10:07:29.726 [debug] QUERY OK source="media_items" db=1.1ms idle=345.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "c339a13b-130d-4b36-8fa8-8d382d550e5e", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 15:07:29Z], ~U[2026-04-30 15:07:29Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 10:07:29.727 [debug] QUERY OK source="sources" db=0.2ms idle=149.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" = ?) [30] 10:07:29.727 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:29.727 [debug] QUERY OK source="media_items" db=0.2ms 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 [2785377] 10:07:29.728 [debug] Current batch of media processed. Will check again in 1000ms 10:07:30.729 [debug] Current batch of media processed. Will check again in 1000ms 10:07:31.730 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1109, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", "id" => "a4BxvWs9PGE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=a4BxvWs9PGE", "playlist_index" => 8, "timestamp" => 1776792600, "title" => "Github Hates That This Repo Still Exists", "upload_date" => "20260421"} 10:07:31.730 [debug] QUERY OK source="sources" db=0.2ms idle=193.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 (?)) [30] 10:07:31.731 [debug] QUERY OK source="sources" db=0.1ms idle=193.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" = ?) [30] 10:07:31.735 [debug] QUERY OK source="media_items" db=4.5ms idle=193.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 10:07:31.737 [debug] QUERY OK source="media_items" db=1.0ms idle=198.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "fb3468c9-e724-4b58-945d-a015c94af5bb", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 15:07:31Z], ~U[2026-04-30 15:07:31Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 10:07:31.737 [debug] QUERY OK source="sources" db=0.1ms idle=156.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" = ?) [30] 10:07:31.737 [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] 10:07:31.738 [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 [2777718] 10:07:31.738 [debug] Current batch of media processed. Will check again in 1000ms 10:07:32.739 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1304, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", "id" => "83heISygLyA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=83heISygLyA", "playlist_index" => 9, "timestamp" => 1776706202, "title" => "Bizarre World Of Wikipedia Deleting Programming Pages", "upload_date" => "20260420"} 10:07:32.739 [debug] QUERY OK source="sources" db=0.3ms 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 (?)) [30] 10:07:32.740 [debug] QUERY OK source="sources" db=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" = ?) [30] 10:07:32.744 [debug] QUERY OK source="media_items" db=4.4ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 10:07:32.746 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "d4aaaee6-a725-4e27-a446-14a47800c569", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 15:07:32Z], ~U[2026-04-30 15:07:32Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 10:07:32.746 [debug] QUERY OK source="sources" db=0.1ms idle=164.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" = ?) [30] 10:07:32.747 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:32.747 [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 [2769902] 10:07:32.747 [debug] Current batch of media processed. Will check again in 1000ms 10:07:33.748 [debug] Current batch of media processed. Will check again in 1000ms 10:07:34.383 [info] GET /sources/55/media/2276817/edit 10:07:34.383 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2276817", "source_id" => "55"} Pipelines: [:browser] 10:07:34.383 [debug] QUERY OK source="media_items" db=0.1ms idle=1637.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" = ?) [2276817] 10:07:34.384 [debug] QUERY OK source="settings" db=0.0ms idle=1637.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 [] 10:07:34.384 [debug] QUERY OK source="settings" db=0.0ms idle=1637.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:34.384 [debug] QUERY OK source="settings" db=0.0ms idle=1637.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:34.385 [info] Sent 200 in 1ms 10:07:34.749 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1083, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", "id" => "g9TEuezEm9c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g9TEuezEm9c", "playlist_index" => 10, "timestamp" => 1776619810, "title" => "The Linux Kernel Has Ancient Weird Problems", "upload_date" => "20260419"} 10:07:34.750 [debug] QUERY OK source="sources" db=0.1ms idle=366.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 (?)) [30] 10:07:34.750 [debug] QUERY OK source="sources" db=0.1ms idle=366.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" = ?) [30] 10:07:34.755 [debug] QUERY OK source="media_items" db=4.4ms idle=366.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 10:07:34.756 [debug] QUERY OK source="media_items" db=1.0ms idle=370.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "44318a53-ff8d-47e5-be50-956f3c849d1e", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 15:07:34Z], ~U[2026-04-30 15:07:34Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 10:07:34.757 [debug] QUERY OK source="sources" db=0.1ms idle=171.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" = ?) [30] 10:07:34.757 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:34.757 [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 [2761936] 10:07:34.757 [debug] Current batch of media processed. Will check again in 1000ms 10:07:35.758 [debug] Current batch of media processed. Will check again in 1000ms 10:07:36.712 [info] {"source":"oban","duration":3965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:36.759 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1064, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", "id" => "HRsdi7YJ8dI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "playlist_index" => 11, "timestamp" => 1776533409, "title" => "I'm Conflicted About Future Of Open Source", "upload_date" => "20260418"} 10:07:36.759 [debug] QUERY OK source="sources" db=0.1ms idle=222.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 (?)) [30] 10:07:36.759 [debug] QUERY OK source="sources" db=0.1ms idle=222.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" = ?) [30] 10:07:36.764 [debug] QUERY OK source="media_items" db=4.5ms idle=222.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 10:07:36.777 [debug] QUERY OK source="media_items" db=12.1ms idle=176.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "3839d532-72d9-4a28-9bb0-1e06b13539af", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 15:07:36Z], ~U[2026-04-30 15:07:36Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 10:07:36.777 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [30] 10:07:36.778 [debug] QUERY OK source="media_profiles" db=0.1ms idle=18.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] 10:07:36.778 [debug] QUERY OK source="media_items" db=0.2ms idle=18.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 [2753905] 10:07:36.778 [debug] Current batch of media processed. Will check again in 1000ms 10:07:37.779 [debug] Current batch of media processed. Will check again in 1000ms 10:07:38.780 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1191, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", "id" => "xToLWuGLSNs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xToLWuGLSNs", "playlist_index" => 12, "timestamp" => 1776360613, "title" => "Linux Kernel Would Randomly Explode In The Past", "upload_date" => "20260416"} 10:07:38.780 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 10:07:38.781 [debug] QUERY OK source="sources" db=0.1ms idle=243.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" = ?) [30] 10:07:38.785 [debug] QUERY OK source="media_items" db=4.5ms idle=244.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 10:07:38.787 [debug] QUERY OK source="media_items" db=1.0ms idle=248.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "6fd315a8-08fa-45aa-a956-849c84bfb276", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 15:07:38Z], ~U[2026-04-30 15:07:38Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 10:07:38.787 [debug] QUERY OK source="sources" db=0.1ms idle=195.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" = ?) [30] 10:07:38.787 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:38.788 [debug] QUERY OK source="media_items" db=0.3ms 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 [2739256] 10:07:38.788 [debug] Current batch of media processed. Will check again in 1000ms 10:07:39.385 [info] GET /sources/17/media/12957/edit 10:07:39.385 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12957", "source_id" => "17"} Pipelines: [:browser] 10:07:39.386 [debug] QUERY OK source="media_items" db=0.7ms idle=599.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" = ?) [12957] 10:07:39.386 [debug] QUERY OK source="settings" db=0.1ms idle=599.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 [] 10:07:39.386 [debug] QUERY OK source="settings" db=0.0ms idle=599.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:39.387 [debug] QUERY OK source="settings" db=0.0ms idle=599.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:39.387 [info] Sent 200 in 2ms 10:07:39.789 [debug] Current batch of media processed. Will check again in 1000ms 10:07:40.790 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1221, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", "id" => "KQu1oRRVAVo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KQu1oRRVAVo", "playlist_index" => 13, "timestamp" => 1776274207, "title" => "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "upload_date" => "20260415"} 10:07:40.790 [debug] QUERY OK source="sources" db=0.1ms idle=253.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 (?)) [30] 10:07:40.791 [debug] QUERY OK source="sources" db=0.1ms idle=253.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" = ?) [30] 10:07:40.795 [debug] QUERY OK source="media_items" db=4.3ms idle=254.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 10:07:40.797 [debug] QUERY OK source="media_items" db=1.3ms idle=258.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "c297cdba-6807-42e7-bbc7-61bbb7313960", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 15:07:40Z], ~U[2026-04-30 15:07:40Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 10:07:40.797 [debug] QUERY OK source="sources" db=0.1ms idle=203.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" = ?) [30] 10:07:40.798 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:40.798 [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 [2737248] 10:07:40.798 [debug] Current batch of media processed. Will check again in 1000ms 10:07:41.799 [debug] Current batch of media processed. Will check again in 1000ms 10:07:42.800 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1388, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", "id" => "3ojCgjkGzX0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3ojCgjkGzX0", "playlist_index" => 14, "timestamp" => 1776187801, "title" => "Valve Changes Everything For Low VRAM GPUs On Linux", "upload_date" => "20260414"} 10:07:42.800 [debug] QUERY OK source="sources" db=0.1ms idle=262.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 (?)) [30] 10:07:42.800 [debug] QUERY OK source="sources" db=0.1ms idle=263.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" = ?) [30] 10:07:42.805 [debug] QUERY OK source="media_items" db=4.3ms idle=263.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 10:07:42.807 [debug] QUERY OK source="media_items" db=1.1ms idle=267.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "6e2d9554-1200-4169-a1eb-f17d1dd531d6", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 15:07:42Z], ~U[2026-04-30 15:07:42Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 10:07:42.807 [debug] QUERY OK source="sources" db=0.2ms idle=208.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" = ?) [30] 10:07:42.807 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:42.808 [debug] QUERY OK source="media_items" db=0.2ms 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 [2729471] 10:07:42.808 [debug] Current batch of media processed. Will check again in 1000ms 10:07:43.808 [debug] Current batch of media processed. Will check again in 1000ms 10:07:44.385 [info] GET /sources/17/media/12952/edit 10:07:44.385 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12952", "source_id" => "17"} Pipelines: [:browser] 10:07:44.385 [debug] QUERY OK source="media_items" db=0.1ms idle=1578.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" = ?) [12952] 10:07:44.385 [debug] QUERY OK source="settings" db=0.1ms idle=1578.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 [] 10:07:44.386 [debug] QUERY OK source="settings" db=0.0ms idle=1578.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 [] 10:07:44.386 [debug] QUERY OK source="settings" db=0.0ms idle=1578.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:44.387 [info] Sent 200 in 1ms 10:07:44.810 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1405, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", "id" => "-3MJA0NfvRE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-3MJA0NfvRE", "playlist_index" => 15, "timestamp" => 1776101400, "title" => "Console Hackers Put Linux On Everything", "upload_date" => "20260413"} 10:07:44.811 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=425.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 (?)) [30] 10:07:44.812 [debug] QUERY OK source="sources" db=0.1ms idle=425.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" = ?) [30] 10:07:44.816 [debug] QUERY OK source="media_items" db=4.5ms idle=426.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 10:07:44.818 [debug] QUERY OK source="media_items" db=1.1ms idle=430.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "90c3d550-5237-4adc-a05c-822df60744e0", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 15:07:44Z], ~U[2026-04-30 15:07:44Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 10:07:44.818 [debug] QUERY OK source="sources" db=0.1ms idle=215.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" = ?) [30] 10:07:44.818 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:44.819 [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 [2721843] 10:07:44.819 [debug] Current batch of media processed. Will check again in 1000ms 10:07:45.820 [debug] Current batch of media processed. Will check again in 1000ms 10:07:46.821 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 716, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", "id" => "yiuQB1Dq3Xk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "playlist_index" => 16, "timestamp" => 1776015028, "title" => "The Linux Kernel Eliminated This Entire C Function", "upload_date" => "20260412"} 10:07:46.821 [debug] QUERY OK source="sources" db=0.1ms idle=284.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 (?)) [30] 10:07:46.822 [debug] QUERY OK source="sources" db=0.0ms idle=284.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" = ?) [30] 10:07:46.826 [debug] QUERY OK source="media_items" db=4.3ms idle=284.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 10:07:46.828 [debug] QUERY OK source="media_items" db=1.1ms idle=289.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "d8b5d288-00fb-42e9-b57b-2de09d1a0fb1", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 15:07:46Z], ~U[2026-04-30 15:07:46Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 10:07:46.828 [debug] QUERY OK source="sources" db=0.1ms idle=221.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" = ?) [30] 10:07:46.828 [debug] QUERY OK source="media_profiles" db=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] 10:07:46.828 [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 [2714041] 10:07:46.828 [debug] Current batch of media processed. Will check again in 1000ms 10:07:47.830 [debug] Current batch of media processed. Will check again in 1000ms 10:07:48.831 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 806, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", "id" => "uMDwmg7i2_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uMDwmg7i2_4", "playlist_index" => 17, "timestamp" => 1775928629, "title" => "\"Copilot Is For Entertainment Purposes Only\"", "upload_date" => "20260411"} 10:07:48.831 [debug] QUERY OK source="sources" db=0.2ms idle=294.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 (?)) [30] 10:07:48.832 [debug] QUERY OK source="sources" db=0.1ms idle=294.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" = ?) [30] 10:07:48.836 [debug] QUERY OK source="media_items" db=4.4ms idle=294.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 10:07:48.838 [debug] QUERY OK source="media_items" db=1.1ms idle=299.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "3f0ed3a6-21d2-4ffc-99bf-563c1b19cf0b", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 15:07:48Z], ~U[2026-04-30 15:07:48Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 10:07:48.838 [debug] QUERY OK source="sources" db=0.1ms idle=228.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" = ?) [30] 10:07:48.838 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:48.839 [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 [2706404] 10:07:48.839 [debug] Current batch of media processed. Will check again in 1000ms 10:07:49.617 [info] GET /sources/55/media/2331681/force_download 10:07:49.617 [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 [] 10:07:49.617 [debug] QUERY OK source="settings" db=0.0ms idle=778.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:49.617 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:07:49.617 [error] #PID<0.190976.0> running PinchflatWeb.Endpoint (connection #PID<0.190975.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/media/2331681/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/55/media/2331681/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2331681/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190976.0>, params: %{}, path_info: ["sources", "55", "media", "2331681", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/media/2331681/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsq66vfjTRQg4oASEyC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2331681/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/media/2331681/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/media/2331681/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190976.0>, params: %{}, path_info: ["sources", "55", "media", "2331681", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:07:49.840 [debug] Current batch of media processed. Will check again in 1000ms 10:07:50.841 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", "id" => "Sk11hvLZiEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk11hvLZiEA", "playlist_index" => 18, "timestamp" => 1775755805, "title" => "The Linux Open Source Document Editors Are Fighting", "upload_date" => "20260409"} 10:07:50.841 [debug] QUERY OK source="sources" db=0.3ms idle=1224.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 (?)) [30] 10:07:50.842 [debug] QUERY OK source="sources" db=0.1ms idle=1224.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" = ?) [30] 10:07:50.847 [debug] QUERY OK source="media_items" db=4.4ms idle=305.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 10:07:50.848 [debug] QUERY OK source="media_items" db=1.0ms idle=310.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "0cba9332-0d5c-4059-99ec-4d19359bd94b", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 15:07:50Z], ~U[2026-04-30 15:07:50Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 10:07:50.848 [debug] QUERY OK source="sources" db=0.1ms idle=235.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" = ?) [30] 10:07:50.849 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:50.849 [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 [2690052] 10:07:50.849 [debug] Current batch of media processed. Will check again in 1000ms 10:07:51.849 [debug] Current batch of media processed. Will check again in 1000ms 10:07:52.851 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 823, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", "id" => "4XN_1MVwZJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "playlist_index" => 19, "timestamp" => 1775669401, "title" => "This One Annoying Linux Problem Is Finally Ending", "upload_date" => "20260408"} 10:07:52.852 [debug] QUERY OK source="sources" db=0.2ms idle=314.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 (?)) [30] 10:07:52.852 [debug] QUERY OK source="sources" db=0.1ms idle=315.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" = ?) [30] 10:07:52.856 [debug] QUERY OK source="media_items" db=4.4ms idle=315.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 10:07:52.858 [debug] QUERY OK source="media_items" db=1.0ms idle=319.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "c7e77ff1-6a8b-44e6-ad93-709a8ad87368", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 15:07:52Z], ~U[2026-04-30 15:07:52Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 10:07:52.858 [debug] QUERY OK source="sources" db=0.2ms idle=241.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" = ?) [30] 10:07:52.859 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:07:52.859 [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 [2681964] 10:07:52.859 [debug] Current batch of media processed. Will check again in 1000ms 10:07:53.860 [debug] Current batch of media processed. Will check again in 1000ms 10:07:54.028 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/ea/84/ea841c574ad868e1ed6c697436996dd8f96d4e2fecc586f18d01b19d0157c9ea.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/da/69/da6938c36d765e7156e3b7f3e460a94bd884404eea184b6a752dc06144c74b4a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 10:07:54.028 [debug] Gracefully stopping file follower 10:07:54.029 [debug] QUERY OK source="sources" db=0.2ms idle=1170.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 (?)) [30] 10:07:54.029 [debug] QUERY OK source="sources" db=0.1ms idle=1170.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" = ?) [30] 10:07:54.034 [debug] QUERY OK source="media_items" db=4.4ms idle=1170.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 17:30:28Z], 30] 10:07:54.035 [debug] QUERY OK source="media_items" db=0.8ms idle=1174.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "89c11fe9-cce0-414c-933a-a4340d87aa00", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, false, false, 30, [], 98, ~U[2026-04-29 17:30:28Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "KDE Plasma 6.7 is just a bit over a month a way and honestly it's shaping up to be another incredible release, so much so that I am seriously considering swapping back to the environment at least for a bit.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nThis Week In Plasma: https://blogs.kde.org/categories/this-week-in-plasma/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #KDEPlasma #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Future Of KDE Plasma Looks Incredible", "npKb9UAxDxQ", 1328, false, "https://www.youtube.com/watch?v=npKb9UAxDxQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042900_The Future Of KDE Plasma Looks Incredible.mp4", false, 30, ~U[2026-04-29 17:30:28Z]] 10:07:54.035 [debug] QUERY OK source="sources" db=0.1ms idle=416.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" = ?) [30] 10:07:54.040 [debug] QUERY OK source="media_items" db=4.2ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 17:30:22Z], 30] 10:07:54.041 [debug] QUERY OK source="media_items" db=1.2ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "df0f069b-1609-4b79-9344-c0beca8db70f", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-28 17:30:22Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Finally the Steam Controller is actually coming we know when it's dropping, May 4th and honestly I'm super excited for it, I've not got a chance to try it yet but everything I'm seeing with it looks absolutely amazing\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteamDeck Performance: https://www.notebookcheck.net/Valve-adds-new-tools-for-developers-to-track-Steam-Deck-framerate-and-player-feedback-data-to-help-improve-performance.1281922.0.html\nPC Peformance: https://www.techpowerup.com/348023/steam-will-estimate-game-fps-before-purchase-to-show-expected-pc-performance\nProton 11 Beta: https://x.com/SadlyItsBradley/status/2044888780440551671\nProton Arm: https://x.com/SadlyItsBradley/status/2044892275201790251\nLinux Arm Client: https://github.com/chaitan3/steam_installer_linuxarm64\nValve Announcement: https://store.steampowered.com/news/group/45479024/view/508485755865137686\nSteam Controller Purchase Page: https://store.steampowered.com/sale/steamcontroller\nSC Controller: https://github.com/C0rn3j/sc-controller\n8BitDo: https://www.8bitdo.com/ultimate-2-wireless-controller/\niFixit: https://www.pcgamer.com/hardware/game-pads/valve-will-be-providing-steam-controller-replacement-parts-via-ifixit-after-launch/\nSteam Frame and Machine: https://x.com/SadlyItsBradley/status/2048818605991604356\nSteam Deck 2: https://www.ign.com/articles/valve-says-its-hard-at-work-on-steam-deck-2-but-theres-still-no-release-window\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#SteamDeck #SteamMachine #SteamController #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve has Cooked Up Something Amazing", "lIK4hKCXZHs", 1567, false, "https://www.youtube.com/watch?v=lIK4hKCXZHs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042800_Valve has Cooked Up Something Amazing.mp4", false, 30, ~U[2026-04-28 17:30:22Z]] 10:07:54.042 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.046 [debug] QUERY OK source="media_items" db=4.0ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 17:30:30Z], 30] 10:07:54.077 [debug] QUERY OK source="media_items" db=29.9ms idle=11.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "266a0948-5f91-4a14-a5e1-1511d6dc1487", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, false, false, 30, [], 98, ~U[2026-04-27 17:30:30Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "You should never pick up and plug random USB devices into your system, but sometimes you can't control what other do to your system and you want to make sure that no one ever plugs in a BadUSB\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nKernel Patch: https://lore.kernel.org/lkml/20260404133746.80914-1-zybo1000@gmail.com\nUSB Guard Website: https://usbguard.github.io/\nArch Wiki USB Guard: https://wiki.archlinux.org/title/USBGuard\nUSBKill: https://github.com/fabiogermann/usbkill\nSilk Guardian: https://github.com/kmille/silk-guardian\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#USB #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Protect Your Linux Desktop From Malicious USB Devices", "tLKOH-CUWyI", 1123, false, "https://www.youtube.com/watch?v=tLKOH-CUWyI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042700_Protect Your Linux Desktop From Malicious USB Devices.mp4", false, 30, ~U[2026-04-27 17:30:30Z]] 10:07:54.078 [debug] QUERY OK source="sources" db=0.8ms idle=37.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" = ?) [30] 10:07:54.082 [debug] QUERY OK source="media_items" db=4.1ms idle=36.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 17:30:03Z], 30] 10:07:54.087 [debug] QUERY OK source="media_items" db=4.8ms idle=40.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "44334141-e6d0-4cea-9e93-1c062cf42719", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, false, false, 30, [], 98, ~U[2026-04-26 17:30:03Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "When there's a single maintainer operating a project things can get very messy when they decide to take a break or even worse decide to fully step down like has happened with a ton of GNOME related projects.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://my.devsuite.app/@chergert/116408667154713506\nBlog Post: https://blogs.gnome.org/chergert/2026/02/06/mid-life-transitions/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#GNOME #Linux #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "One Maintainer Is All It Takes To Break A Project", "989vCMg3Qv8", 1104, false, "https://www.youtube.com/watch?v=989vCMg3Qv8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042600_One Maintainer Is All It Takes To Break A Project.mp4", false, 30, ~U[2026-04-26 17:30:03Z]] 10:07:54.088 [debug] QUERY OK source="sources" db=0.7ms idle=41.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" = ?) [30] 10:07:54.092 [debug] QUERY OK source="media_items" db=4.0ms idle=12.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 17:30:10Z], 30] 10:07:54.094 [debug] QUERY OK source="media_items" db=1.1ms idle=14.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "9e61f568-9b43-4129-932d-4cb28fa4c00a", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, false, false, 30, [], 98, ~U[2026-04-25 17:30:10Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "I recently came across what might be one of the dumbest ideas I've ever seen, someone hiding the obvious malware they have installed on there system by making this dumb web extension.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/browsers/comments/1slgyt9/finally_built_a_solution_preventing_yahoo_taking\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#WebBrowser #Javascript #Developer #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "There's No Way This Web Extension Is Real", "kvMBenjrbOA", 968, false, "https://www.youtube.com/watch?v=kvMBenjrbOA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042500_There's No Way This Web Extension Is Real.mp4", false, 30, ~U[2026-04-25 17:30:10Z]] 10:07:54.095 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.099 [debug] QUERY OK source="media_items" db=4.2ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 17:30:04Z], 30] 10:07:54.100 [debug] QUERY OK source="media_items" db=0.9ms idle=11.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "75336e22-ad2f-439d-9617-0e0a354217c0", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, false, false, 30, [], 98, ~U[2026-04-23 17:30:04Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "During the days of KDE 4 we had the Oxygen theme and there is a recent revival project for this to bring it Plasma 6, but there was another design being worked on by the designer of that theme that sadly never got finished Oxygen Squared.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFilip Fila Blog: https://filipfila.wordpress.com/2026/04/05/halfway-there-to-6-7-updates-on-oxygen-and-air/\nNuno Pinheiro Blog: https://pinheiro-kde.blogspot.com/2020/09/week-report-0.html\nOxygen 2 Theme: https://invent.kde.org/pinheiro/oxygen2\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#Linux #KDE #KDEPlasma #OpenSource #FOSS\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Oxygen Squared The KDE Design We Never Had", "I4sP8K8c6yc", 926, false, "https://www.youtube.com/watch?v=I4sP8K8c6yc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042300_Oxygen Squared The KDE Design We Never Had.mp4", false, 30, ~U[2026-04-23 17:30:04Z]] 10:07:54.101 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.105 [debug] QUERY OK source="media_items" db=4.0ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 17:30:04Z], 30] 10:07:54.107 [debug] QUERY OK source="media_items" db=1.1ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "02ba6a41-1c79-4a94-ba78-9ff83fef9b63", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, false, false, 30, [], 98, ~U[2026-04-22 17:30:04Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Everyone has been talking about the new IPv8 proposal, the only problem is that it is completely fake, and that becomes really obvious if you actually go and read it, this is nothing like IPv6\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMeow Proposal: https://www.ietf.org/archive/id/draft-meow-mrrp-00.html\nArticle: https://www.guru3d.com/story/ipv8-draft-proposes-backwardcompatible-ipv4-evolution-with-integrated-routing-and-security/\nIPv8 Proposal: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html\nIETF Mailing List: https://mailarchive.ietf.org/arch/msg/ietf/tpJOKSWGRMGOANSCrDFQTud80T0/\nIPv6 Proposal: https://www.rfc-editor.org/rfc/rfc1883\nHackernews: https://news.ycombinator.com/item?id=47788857\nCyberNews: https://cybernews.com/tech/ipv8-proposal-slammed-by-tech-professionals/\nIPv9: https://www.rfc-editor.org/rfc/rfc1606\nIPoAC: https://www.rfc-editor.org/rfc/rfc2549.htmlR\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#IPv8 #WebDeveloper #OpenSource #FOSS #Linux #Browser \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "IPv8 Changes Everything We Know About IP", "7YPnh6dlyQQ", 1136, false, "https://www.youtube.com/watch?v=7YPnh6dlyQQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042200_IPv8 Changes Everything We Know About IP.mp4", false, 30, ~U[2026-04-22 17:30:04Z]] 10:07:54.108 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 10:07:54.112 [debug] QUERY OK source="media_items" db=3.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 17:30:00Z], 30] 10:07:54.115 [debug] QUERY OK source="media_items" db=3.4ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "816c295f-6e9e-4743-a371-c780a4b47cba", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, false, false, 30, [], 98, ~U[2026-04-21 17:30:00Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Have you ever thought about how to maximize your code output, to become a true 100x developer, well it's time to start your codemaxxing journey\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCodemaxxed: https://github.com/jshchnz/codemaxxed\nCodemaxxing: https://github.com/jshchnz/codemaxxing\nTwitter Post 1: https://x.com/jshchnz/status/2038760791688790282\nFinal Post: https://x.com/jshchnz/status/2045183451691905237\nHackernews Post: https://news.ycombinator.com/item?id=47808458\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Programmer #Developer #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Github Hates That This Repo Still Exists", "a4BxvWs9PGE", 1109, false, "https://www.youtube.com/watch?v=a4BxvWs9PGE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042100_Github Hates That This Repo Still Exists.mp4", false, 30, ~U[2026-04-21 17:30:00Z]] 10:07:54.116 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.120 [debug] QUERY OK source="media_items" db=4.0ms idle=9.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 17:30:02Z], 30] 10:07:54.122 [debug] QUERY OK source="media_items" db=0.9ms idle=12.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "1094aeb5-b4f2-4af6-832c-f8196a91bdc5", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, false, false, 30, [], 98, ~U[2026-04-20 17:30:02Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Have you ever wanted to look into the mind of the Wikipedia moderator and the removal of a page from the website, well lets take a look at the recent removal of the page for the Odin language a relatively niche but interesting language with some very minor industry usage.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOdin Deletion Article: https://en.wikipedia.org/wiki/Wikipedia%3AArticles_for_deletion%2FOdin_(programming_language)\nOdin Lang: https://odin-lang.org/\nRaylib: https://www.raylib.com/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wikipedia #Programing #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bizarre World Of Wikipedia Deleting Programming Pages", "83heISygLyA", 1304, false, "https://www.youtube.com/watch?v=83heISygLyA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e042000_Bizarre World Of Wikipedia Deleting Programming Pages.mp4", false, 30, ~U[2026-04-20 17:30:02Z]] 10:07:54.122 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.126 [debug] QUERY OK source="media_items" db=3.9ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 17:30:10Z], 30] 10:07:54.128 [debug] QUERY OK source="media_items" db=0.9ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "280f961a-56a5-4026-8e5f-62c8651ea431", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, false, false, 30, [], 98, ~U[2026-04-19 17:30:10Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "The Linux kernel is a massive code base with decades upon decades of problems that keep showing up from time to time and there's some work going in to better spot these.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLKML Post: https://lore.kernel.org/lkml/20260410120044.031381086@kernel.org/\nProject Glasswing: https://www.anthropic.com/glasswing\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #LinuxKernel #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Has Ancient Weird Problems", "g9TEuezEm9c", 1083, false, "https://www.youtube.com/watch?v=g9TEuezEm9c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041900_The Linux Kernel Has Ancient Weird Problems.mp4", false, 30, ~U[2026-04-19 17:30:10Z]] 10:07:54.128 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.132 [debug] QUERY OK source="media_items" db=3.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 17:30:09Z], 30] 10:07:54.134 [debug] QUERY OK source="media_items" db=0.9ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "7ca99bfd-8736-4f8f-95f5-166b89532536", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, false, false, 30, [], 98, ~U[2026-04-18 17:30:09Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "The more time progresses, the more a whole new generation of developers are growing up around AI tooling and this possibly creates a problem for the existence of the open source world.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#OpenSource #Linux #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I'm Conflicted About Future Of Open Source", "HRsdi7YJ8dI", 1064, false, "https://www.youtube.com/watch?v=HRsdi7YJ8dI", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041800_I'm Conflicted About Future Of Open Source.mp4", false, 30, ~U[2026-04-18 17:30:09Z]] 10:07:54.134 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.138 [debug] QUERY OK source="media_items" db=3.8ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 17:30:13Z], 30] 10:07:54.140 [debug] QUERY OK source="media_items" db=1.0ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "6fb8eec8-adb9-49d7-beb5-12e309300b25", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, false, false, 30, [], 98, ~U[2026-04-16 17:30:13Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "What was once standard Linux lore is that old PC hardware was kinda terrible and sometimes would just break for seemingly no reason so lets go back and take a look at reasons why the Linux kernel build would just segfault\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSIG11 Problem: https://tldp.org/FAQ/sig11/html/index.html\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Kernel Would Randomly Explode In The Past", "xToLWuGLSNs", 1191, false, "https://www.youtube.com/watch?v=xToLWuGLSNs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041600_Linux Kernel Would Randomly Explode In The Past.mp4", false, 30, ~U[2026-04-16 17:30:13Z]] 10:07:54.140 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 10:07:54.144 [debug] QUERY OK source="media_items" db=3.9ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 17:30:07Z], 30] 10:07:54.146 [debug] QUERY OK source="media_items" db=1.1ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "9be4a5e1-ea60-4fc5-b61d-a7fc4f60d2ef", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, false, false, 30, [], 98, ~U[2026-04-15 17:30:07Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "After 21 years virtual desktops finally work properly on KDE Plasma as of version 6.7 but the world wasn't done by an existing KDE developer, instead by someone new who wanted to take on a challenge, this with all the other big changes coming and Plasma 6.7 looks amazing.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nOld Video: https://www.youtube.com/watch?v=AmdqMFGnJlc\nBug Report: https://bugs.kde.org/show_bug.cgi?id=107302\nPast Report: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/910\nOld This Week In KDE: https://blogs.kde.org/2025/11/08/this-week-in-plasma-virtual-desktops-only-on-the-primary-screen/\nNew Merge Request: https://invent.kde.org/plasma/kwin/-/merge_requests/8602\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#KDE #Linux #OpenSource #FOSS #KDEPlasma #Wayland\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE Plasma 6.7 Is Shaping Up To Be Amazing", "KQu1oRRVAVo", 1221, false, "https://www.youtube.com/watch?v=KQu1oRRVAVo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041500_KDE Plasma 6.7 Is Shaping Up To Be Amazing.mp4", false, 30, ~U[2026-04-15 17:30:07Z]] 10:07:54.147 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 10:07:54.151 [debug] QUERY OK source="media_items" db=3.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 17:30:01Z], 30] 10:07:54.152 [debug] QUERY OK source="media_items" db=0.9ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "17ea40ce-48a1-4cf9-8f28-cfe6166677b8", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, false, false, 30, [], 98, ~U[2026-04-14 17:30:01Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Valve is once again showing why I love them and one of there developers is working on some patches to have your GPU more effectively assign VRAM to the games that should be the priority, for now only on KDE and very new kernels.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlog Post: https://pixelcluster.github.io/VRAM-Mgmt-fixed/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Valve #LinuxGaming #GamingOnLinux #SteamDeck\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve Changes Everything For Low VRAM GPUs On Linux", "3ojCgjkGzX0", 1388, false, "https://www.youtube.com/watch?v=3ojCgjkGzX0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041400_Valve Changes Everything For Low VRAM GPUs On Linux.mp4", false, 30, ~U[2026-04-14 17:30:01Z]] 10:07:54.152 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.156 [debug] QUERY OK source="media_items" db=3.9ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 17:30:00Z], 30] 10:07:54.158 [debug] QUERY OK source="media_items" db=0.9ms idle=10.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "41d5639d-e004-46f1-bf36-814cbf829c67", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, false, false, 30, [], 98, ~U[2026-04-13 17:30:00Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "A game console is basically just computer with a custom OS and a locked bootloader so you shouldn't be surprised at all that there is a world of people who try to install Linux on them.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxDistro #GamingOnLinux #LinuxGaming\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Console Hackers Put Linux On Everything", "-3MJA0NfvRE", 1405, false, "https://www.youtube.com/watch?v=-3MJA0NfvRE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041300_Console Hackers Put Linux On Everything.mp4", false, 30, ~U[2026-04-13 17:30:00Z]] 10:07:54.158 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.162 [debug] QUERY OK source="media_items" db=3.8ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 17:30:28Z], 30] 10:07:54.164 [debug] QUERY OK source="media_items" db=1.0ms idle=10.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "86ccae9c-9b0f-4fe3-9c36-01b6ebda515b", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, false, false, 30, [], 98, ~U[2026-04-12 17:30:28Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "You wouldn't often think that an entire C function would need to be eliminated from the kernel but recently exactly that was done.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nMastodon Post: https://hachyderm.io/@kees/116282745861595200\n2020 Work: https://github.com/KSPP/linux/issues/90\nRecent Merge: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v7.0-rc2/strncpy&id=be568570cf71c5db5d6039ac077d90e3767c2fe1\nStrncpy: https://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy\nOlder Post: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Linuxkernel #FOSS #OpenSoure #Kernel\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Kernel Eliminated This Entire C Function", "yiuQB1Dq3Xk", 716, false, "https://www.youtube.com/watch?v=yiuQB1Dq3Xk", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041200_The Linux Kernel Eliminated This Entire C Function.mp4", false, 30, ~U[2026-04-12 17:30:28Z]] 10:07:54.164 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.168 [debug] QUERY OK source="media_items" db=3.9ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 17:30:29Z], 30] 10:07:54.170 [debug] QUERY OK source="media_items" db=1.0ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "db3fb0af-79d7-4224-ac86-a5a837f7ec33", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, false, false, 30, [], 98, ~U[2026-04-11 17:30:29Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Have you ever actually read the TOS for any of the AI tools you use, well probably not but there's some fun little excerpts that you can find\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCopilot TOS: https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/termsofuse\nArticle: https://www.nbcnews.com/tech/innovation/ai-chatgpt-court-law-legal-lawyer-self-represent-pro-se-attorney-rcna230401\nAnthropic TOS: https://www.anthropic.com/legal/consumer-terms\nDiffchecker: https://www.diffchecker.com/BtqVrR9p/\nAzure OpenAI: https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "\"Copilot Is For Entertainment Purposes Only\"", "uMDwmg7i2_4", 806, false, "https://www.youtube.com/watch?v=uMDwmg7i2_4", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e041100_"Copilot Is For Entertainment Purposes Only".mp4", false, 30, ~U[2026-04-11 17:30:29Z]] 10:07:54.170 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.174 [debug] QUERY OK source="media_items" db=3.8ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-09 17:30:05Z], 30] 10:07:54.176 [debug] QUERY OK source="media_items" db=1.1ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "b77e9dbe-9639-414e-9dcb-56ea1b63f137", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, false, false, 30, [], 98, ~U[2026-04-09 17:30:05Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "I never expected to see drama in the FOSS document editor space, but out of nowhere 2 things are happening around the same time, NextCloud with there new EuroOffice vs OnlyOffice and The Document Foundation with LibreOffice vs Collabora with the Collabora Productivity.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nNextCloud Post: https://nextcloud.com/blog/press_releases/industry-initiative-launches-euro-office-as-true-sovereign-office-suite/\nEuroOffice: https://github.com/Euro-Office\nOnlyOffice Response: https://www.onlyoffice.com/blog/2026/03/onlyoffice-flags-license-violations-in-euro-office-project-by-nextcloud-and-ionos\nThe Document Foundation Vote: https://community.documentfoundation.org/t/vote-revoke-votes-related-to-libreoffice-online-atticiziation-and-freezing-of-repository/13495\nCollabora Post: https://www.collaboraonline.com/blog/tdf-ejects-its-core-developers/\nThe Document Foundation Follow Up: https://blog.documentfoundation.org/blog/2026/04/05/lets-put-an-end-to-the-speculation/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\n#OpenSource #Linux #LibreOffice #OnlyOffice #Microsoft\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Linux Open Source Document Editors Are Fighting", "Sk11hvLZiEA", 1923, false, "https://www.youtube.com/watch?v=Sk11hvLZiEA", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040900_The Linux Open Source Document Editors Are Fighting.mp4", false, 30, ~U[2026-04-09 17:30:05Z]] 10:07:54.177 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.181 [debug] QUERY OK source="media_items" db=3.8ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 17:30:01Z], 30] 10:07:54.182 [debug] QUERY OK source="media_items" db=1.1ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "939223dd-4e83-4d01-a520-28a88a2528a2", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, false, false, 30, [], 98, ~U[2026-04-08 17:30:01Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "There's one really annoying problem on Linux and that is the annoying wallet and keyring prompts that we see on Linux like Kwallet and gnome-keyring and to my surprise there is some work going on through something called secretservice to make these vastly less annoying.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nReddit Post: https://www.reddit.com/r/kde/comments/1s8osw2/how_do_i_disable_this_kde_wallet_popup/\nBlog 1: https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/\nBlog 2: https://notmart.org/blog/2025/07/kwallet-to-secretservice-a-client-application-name-wanted/\nBlog 3: https://notmart.org/blog/2026/01/kwallet-secretservice-oo7-the-story-so-far/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #KDE #GNOME\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This One Annoying Linux Problem Is Finally Ending", "4XN_1MVwZJ0", 823, false, "https://www.youtube.com/watch?v=4XN_1MVwZJ0", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040800_This One Annoying Linux Problem Is Finally Ending.mp4", false, 30, ~U[2026-04-08 17:30:01Z]] 10:07:54.183 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 10:07:54.187 [debug] QUERY OK source="media_items" db=3.8ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 17:30:06Z], 30] 10:07:54.188 [debug] QUERY OK source="media_items" db=0.9ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "763613a5-2df0-454f-a3be-0248ca280227", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, false, false, 30, [], 98, ~U[2026-04-07 17:30:06Z], ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], "Recently people made a big deal about Linux hitting 5% market share in the steam hardware survey, but what's the truth here, is it really 5% or just a weird outlier month.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #Steam #LinuxGaming #foss #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Linux Desktop Is Taking Over The World", "9VpjPhsz0V8", 889, false, "https://www.youtube.com/watch?v=9VpjPhsz0V8", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e040700_Linux Desktop Is Taking Over The World.mp4", false, 30, ~U[2026-04-07 17:30:06Z]] 10:07:54.189 [debug] QUERY OK source="sources" db=0.5ms idle=7.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z], 30] 10:07:54.193 [debug] QUERY OK source="media_items" db=4.0ms 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 INNER JOIN "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")))) [30] 10:07:54.197 [debug] QUERY OK source="media_items" db=4.3ms idle=10.3ms 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")))) [30] 10:07:54.198 [debug] QUERY OK source="media_items" db=0.7ms idle=10.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 10:07:54.200 [debug] QUERY OK source="tasks" db=0.4ms idle=6.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300726, 30, ~U[2026-04-30 15:07:54Z], ~U[2026-04-30 15:07:54Z]] 10:07:54.200 [info] {"args":{"id":30},"id":300684,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":55576763,"event":"job:stop","queue_time":166564,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:07:54.518 [info] GET /sources/17/media/12957/force_download 10:07:54.518 [debug] QUERY OK source="settings" db=0.2ms idle=318.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:54.518 [debug] QUERY OK source="settings" db=0.1ms idle=319.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:54.518 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:07:54.519 [error] #PID<0.190977.0> running PinchflatWeb.Endpoint (connection #PID<0.190975.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/media/12957/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/17/media/12957/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12957/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190977.0>, params: %{}, path_info: ["sources", "17", "media", "12957", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/media/12957/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsq7M__s9j-aMwASE2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12957/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/media/12957/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12957/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190977.0>, params: %{}, path_info: ["sources", "17", "media", "12957", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} (truncated) 10:07:58.632 [info] {"args":{"id":1175255},"id":299244,"meta":{},"system_time":1777561678632552156,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:07:58.632 [debug] QUERY OK source="media_items" db=0.1ms idle=1095.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" = ?) [1175255] 10:07:58.632 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:07:58.633 [debug] QUERY OK source="sources" db=0.2ms idle=1095.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" = ?) [43] 10:07:58.633 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1008.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] 10:07:58.633 [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 [1175255] 10:07:58.635 [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" = ?) [1175255] 10:07:58.635 [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] 10:07:58.635 [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 [] 10:07:58.635 [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 [] 10:07:58.635 [debug] Running yt-dlp command for action: get_downloadable_status 10:07:58.636 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:07:58.636 [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 [] 10:07:58.637 [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 [] 10:07:58.637 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uTH7seOdJ4Y --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/54/cf/54cfe17d447cb672dc477879530f57d4cc2f61df69189c5f1cd14719075be832.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:07:59.520 [info] GET /sources/26/media/327263/force_download 10:07:59.521 [debug] QUERY OK source="settings" db=0.1ms idle=885.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 [] 10:07:59.521 [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 [] 10:07:59.521 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:07:59.521 [error] #PID<0.190981.0> running PinchflatWeb.Endpoint (connection #PID<0.190975.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/26/media/327263/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/26/media/327263/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327263/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190981.0>, params: %{}, path_info: ["sources", "26", "media", "327263", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/26/media/327263/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsq7fowlyp3fWkASE4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327263/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/26/media/327263/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190975.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/26/media/327263/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35612}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.190981.0>, params: %{}, path_info: ["sources", "26", "media", "327263", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 10:08:00.321 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uTH7seOdJ4Y --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/54/cf/54cfe17d447cb672dc477879530f57d4cc2f61df69189c5f1cd14719075be832.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] uTH7seOdJ4Y: Join this channel to get access to members-only content like this video, and other exclusive perks. 10:08:00.321 [error] yt-dlp download error for media item #1175255: "ERROR: [youtube] uTH7seOdJ4Y: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 10:08:00.321 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1175255},"id":299244,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1688905,"event":"job:exception","queue_time":766732,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:00.909 [info] {"source":"oban","duration":341,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:08:06.717 [info] {"source":"oban","duration":3810,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:08.071 [info] GET /sources/38/media/1850728 10:08:08.071 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1850728", "source_id" => "38"} Pipelines: [:browser] 10:08:08.072 [debug] QUERY OK source="media_items" db=0.2ms idle=1534.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" = ?) [1850728] 10:08:08.072 [debug] QUERY OK source="tasks" db=0.0ms idle=1534.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" [1850728] 10:08:08.072 [debug] QUERY OK source="sources" db=0.1ms idle=1433.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" = ?) [38] 10:08:08.072 [debug] QUERY OK source="settings" db=0.0ms idle=1355.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:08.072 [debug] QUERY OK source="settings" db=0.0ms idle=432.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 [] 10:08:08.073 [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 [] 10:08:08.073 [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] 10:08:08.074 [info] Sent 200 in 2ms 10:08:12.748 [info] GET /sources/52/media/1301393 10:08:12.748 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1301393", "source_id" => "52"} Pipelines: [:browser] 10:08:12.749 [debug] QUERY OK source="media_items" db=0.1ms idle=1211.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" = ?) [1301393] 10:08:12.749 [debug] QUERY OK source="sources" db=0.1ms idle=1212.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" = ?) [52] 10:08:12.754 [debug] QUERY OK source="tasks" db=4.5ms idle=1212.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" [1301393] 10:08:12.853 [debug] QUERY OK source="oban_jobs" db=94.0ms idle=1112.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [277931, 277992, 278026, 278040, 278054, 278067, 278080, 278216, 278238, 278251, 278279, 278300, 278314, 278327, 278340, 278354, 278367, 278385, 278400, 278413, 278426, 278440, 278453, 278469, 278485, 278498, 278511, 278525, 278538, 278558, 278573, 278587, 278600, 278613, 278627, 278643, 278658, 278672, 278685, 278698, 278712, 278728, 278744, 278758, 278771, 278784, 278798, 278817, 278832, 278846, ...] 10:08:12.871 [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 [] 10:08:12.871 [debug] QUERY OK source="settings" db=0.0ms idle=121.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:12.871 [debug] QUERY OK source="settings" db=0.0ms idle=121.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:12.871 [debug] QUERY OK source="media_profiles" db=0.1ms idle=117.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] 10:08:12.957 [info] Sent 200 in 208ms 10:08:17.750 [info] GET /sources/55/media/2363004 10:08:17.750 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2363004", "source_id" => "55"} Pipelines: [:browser] 10:08:17.751 [debug] QUERY OK source="media_items" db=0.1ms idle=1213.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" = ?) [2363004] 10:08:17.751 [debug] QUERY OK source="tasks" db=0.1ms idle=1214.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" [2363004] 10:08:17.751 [debug] QUERY OK source="sources" db=0.2ms idle=1214.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" = ?) [55] 10:08:17.751 [debug] QUERY OK source="settings" db=0.0ms idle=1097.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 [] 10:08:17.752 [debug] QUERY OK source="settings" db=0.0ms idle=96.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:17.752 [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 [] 10:08:17.752 [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] 10:08:17.753 [info] Sent 200 in 3ms 10:08:22.671 [info] {"args":{"id":52},"id":300725,"meta":{},"system_time":1777561702671458286,"max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 10:08:22.671 [debug] QUERY OK source="sources" db=0.1ms idle=1134.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" = ?) [52] 10:08:22.672 [debug] QUERY OK source="settings" db=0.2ms idle=1134.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:22.672 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1010.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] 10:08:22.673 [debug] QUERY OK source="settings" db=0.1ms 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 [] 10:08:22.673 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 10:08:22.753 [info] GET /sources/46/media/2383903 10:08:22.754 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2383903", "source_id" => "46"} Pipelines: [:browser] 10:08:22.754 [debug] QUERY OK source="media_items" db=0.4ms idle=82.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" = ?) [2383903] 10:08:22.755 [debug] QUERY OK source="tasks" db=0.1ms idle=83.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" [2383903] 10:08:22.755 [debug] QUERY OK source="sources" db=0.2ms idle=82.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" = ?) [46] 10:08:22.755 [debug] QUERY OK source="settings" db=0.0ms idle=82.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 [] 10:08:22.755 [debug] QUERY OK source="settings" db=0.0ms idle=82.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 [] 10:08:22.755 [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 [] 10:08:22.756 [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] 10:08:22.757 [info] Sent 200 in 3ms 10:08:22.858 [debug] Media ids fetched from RSS: ["wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 10:08:22.859 [debug] QUERY OK source="media_items" db=0.5ms idle=103.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 m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "wqu9TMi6plA", "xHiRoSKBDUw", "b342qymnsAA", "FGj-ay4tpes", "D-DRmDRGf1M", "SewVWYVeZV4", "fGoOiITcSfo", "_fy1NXb4hK8", "NbqRMFXflMQ", "lFOLPDQsyQQ", "iDFerdedLIM", "ge8GNhwVnbM", "cJVLVmOEN7o", "lDjHzqYvQik", "a58wbSy-5BU"] 10:08:22.860 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:22.860 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:22.860 [debug] Running yt-dlp command for action: get_media_attributes 10:08:22.862 [debug] QUERY OK source="settings" db=0.0ms idle=106.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 [] 10:08:22.862 [debug] QUERY OK source="settings" db=0.0ms idle=106.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:22.862 [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 [] 10:08:22.862 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/cc/24/cc24e699d10fd40de187f779b365da086d85794ca4b94c05e3607133ebb4d4ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:24.551 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SewVWYVeZV4 --simulate --skip-download --output /downloads/chris/tubes/bashbunni_[UC9H0HzpKf5JlazkADWnW1Jw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)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/cc/24/cc24e699d10fd40de187f779b365da086d85794ca4b94c05e3607133ebb4d4ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days 10:08:24.551 [error] Error creating media item 'SewVWYVeZV4' from URL: {:error, "ERROR: [youtube] SewVWYVeZV4: Premieres in 2 days\n", 1} 10:08:24.552 [debug] QUERY OK source="media_items" db=0.7ms idle=885.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 ((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")))) [52] 10:08:24.555 [debug] QUERY OK source="tasks" db=0.2ms idle=17.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300727, 1301334, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.557 [debug] QUERY OK source="tasks" db=0.3ms idle=2.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300728, 1301335, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.559 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300729, 1301347, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.562 [info] {"args":{"id":1301334},"id":300727,"meta":{},"system_time":1777561704562097211,"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"]} 10:08:24.562 [info] {"args":{"id":1301335},"id":300728,"meta":{},"system_time":1777561704562134213,"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"]} 10:08:24.562 [debug] QUERY OK source="media_items" db=0.4ms 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 WHERE (m0."id" = ?) [1301334] 10:08:24.562 [debug] QUERY OK source="media_items" db=0.5ms idle=2.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" = ?) [1301335] 10:08:24.562 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:24.562 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:24.563 [debug] QUERY OK source="tasks" db=0.3ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300730, 1301392, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.563 [debug] QUERY OK source="sources" db=0.5ms idle=0.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" = ?) [52] 10:08:24.563 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [52] 10:08:24.564 [debug] QUERY OK source="media_profiles" db=0.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] 10:08:24.564 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 10:08:24.566 [debug] QUERY OK source="media_items" db=1.6ms 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 [1301335] 10:08:24.566 [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 [1301334] 10:08:24.566 [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" [300731, 1301393, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.567 [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" = ?) [1301335] 10:08:24.567 [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] 10:08:24.568 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301334] 10:08:24.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 [] 10:08:24.568 [debug] QUERY OK source="settings" db=0.2ms 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 [] 10:08:24.568 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 10:08:24.568 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:24.569 [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 [] 10:08:24.569 [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 [] 10:08:24.569 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:24.569 [debug] QUERY OK source="settings" db=0.2ms 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 [] 10:08:24.569 [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 [] 10:08:24.570 [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 [] 10:08:24.570 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/9d/ba9dcb5bda3943eed4e59c281eb3e29b94dca826f48a7b2398f0fed4a9c059a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:24.570 [debug] QUERY OK source="settings" db=0.1ms queue=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 [] 10:08:24.570 [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 [] 10:08:24.570 [debug] QUERY OK source="tasks" db=0.3ms idle=0.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300732, 1301394, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.570 [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 [] 10:08:24.571 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/25/be/25bee4690063c3f7f61796411d1a7c84468fa5b3398465bfef77a6aa883e9bc4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:24.572 [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" [300733, 1301395, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.575 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300734, 1301397, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.577 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300735, 1301398, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.580 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300736, 1301399, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.582 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300737, 1301400, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.583 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300738, 2720968, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.585 [debug] QUERY OK source="tasks" db=0.1ms idle=1.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300739, 52, ~U[2026-04-30 15:08:24Z], ~U[2026-04-30 15:08:24Z]] 10:08:24.585 [info] {"args":{"id":52},"id":300725,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":1913760,"event":"job:stop","queue_time":516908,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 10:08:26.149 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=TS2wDVcFk4Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/9d/ba9dcb5bda3943eed4e59c281eb3e29b94dca826f48a7b2398f0fed4a9c059a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:26.149 [error] yt-dlp download error for media item #1301335: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:26.149 [error] yt-dlp download will not be retried: "ERROR: [youtube] TS2wDVcFk4Q: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:26.149 [info] {"args":{"id":1301335},"id":300728,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1587307,"event":"job:stop","queue_time":560933,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:26.156 [info] {"args":{"id":1301347},"id":300729,"meta":{},"system_time":1777561706156751241,"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"]} 10:08:26.157 [debug] QUERY OK source="media_items" db=0.2ms idle=1565.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" = ?) [1301347] 10:08:26.157 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:26.157 [debug] QUERY OK source="sources" db=0.1ms idle=1490.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" = ?) [52] 10:08:26.157 [debug] QUERY OK source="media_profiles" db=0.1ms idle=489.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] 10:08:26.158 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301347] 10:08:26.159 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301347] 10:08:26.159 [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] 10:08:26.159 [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 [] 10:08:26.159 [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 [] 10:08:26.159 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:26.161 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:26.161 [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 [] 10:08:26.161 [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 [] 10:08:26.161 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/c6/1cc6b112a61313f0084f1fb445fb3db5d1b0d286bf16951ec6df0be40078d364.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:26.234 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HBDVR-o8Vow --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/25/be/25bee4690063c3f7f61796411d1a7c84468fa5b3398465bfef77a6aa883e9bc4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:26.234 [error] yt-dlp download error for media item #1301334: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:26.234 [error] yt-dlp download will not be retried: "ERROR: [youtube] HBDVR-o8Vow: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:26.235 [info] {"args":{"id":1301334},"id":300727,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1672764,"event":"job:stop","queue_time":560933,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:26.241 [info] {"args":{"id":1301392},"id":300730,"meta":{},"system_time":1777561706241522650,"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"]} 10:08:26.241 [debug] QUERY OK source="media_items" db=0.1ms idle=80.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" = ?) [1301392] 10:08:26.242 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:26.242 [debug] QUERY OK source="sources" db=0.2ms idle=81.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" = ?) [52] 10:08:26.242 [debug] QUERY OK source="media_profiles" db=0.1ms idle=81.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] 10:08:26.243 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301392] 10:08:26.243 [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" = ?) [1301392] 10:08:26.243 [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] 10:08:26.244 [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 [] 10:08:26.244 [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 [] 10:08:26.244 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:26.245 [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 [] 10:08:26.245 [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 [] 10:08:26.245 [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 [] 10:08:26.245 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/21/d1/21d12dff14fa998a1bf9fbcfad3f934d1d6a59dc7d7863b9bdb6a6c3c557d5cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:27.676 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZOPNvcCB3DQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/c6/1cc6b112a61313f0084f1fb445fb3db5d1b0d286bf16951ec6df0be40078d364.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:27.676 [error] yt-dlp download error for media item #1301347: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:27.676 [error] yt-dlp download will not be retried: "ERROR: [youtube] ZOPNvcCB3DQ: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:27.677 [info] {"args":{"id":1301347},"id":300729,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1519810,"event":"job:stop","queue_time":2155909,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:27.683 [info] {"args":{"id":1301393},"id":300731,"meta":{},"system_time":1777561707683773442,"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"]} 10:08:27.684 [debug] QUERY OK source="media_items" db=0.2ms idle=146.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" = ?) [1301393] 10:08:27.684 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:27.684 [debug] QUERY OK source="sources" db=0.2ms idle=147.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" = ?) [52] 10:08:27.685 [debug] QUERY OK source="media_profiles" db=0.1ms idle=14.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] 10:08:27.685 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301393] 10:08:27.686 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.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" = ?) [1301393] 10:08:27.686 [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] 10:08:27.687 [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 [] 10:08:27.687 [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 [] 10:08:27.687 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:27.688 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:27.688 [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 [] 10:08:27.688 [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 [] 10:08:27.688 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/22/68/226856817f4f45bf64a8003dd310bdb80a31ab9451479c7db1003cb44d4e9530.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:27.752 [info] GET /sources/45/media/1790256 10:08:27.752 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1790256", "source_id" => "45"} Pipelines: [:browser] 10:08:27.753 [debug] QUERY OK source="media_items" db=0.2ms idle=66.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" = ?) [1790256] 10:08:27.753 [debug] QUERY OK source="tasks" db=0.1ms idle=66.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" [1790256] 10:08:27.753 [debug] QUERY OK source="sources" db=0.1ms idle=65.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" = ?) [45] 10:08:27.754 [debug] QUERY OK source="settings" db=0.0ms idle=65.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:27.754 [debug] QUERY OK source="settings" db=0.1ms idle=65.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:27.754 [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 [] 10:08:27.755 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:27.756 [info] Sent 200 in 3ms 10:08:28.095 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=-O_wox7rJaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/21/d1/21d12dff14fa998a1bf9fbcfad3f934d1d6a59dc7d7863b9bdb6a6c3c557d5cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:28.095 [error] yt-dlp download error for media item #1301392: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:28.095 [error] yt-dlp download will not be retried: "ERROR: [youtube] -O_wox7rJaM: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:28.096 [info] {"args":{"id":1301392},"id":300730,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1854033,"event":"job:stop","queue_time":2240948,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:28.102 [info] {"args":{"id":1301394},"id":300732,"meta":{},"system_time":1777561708102514531,"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"]} 10:08:28.102 [debug] QUERY OK source="media_items" db=0.1ms idle=348.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" = ?) [1301394] 10:08:28.103 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:28.103 [debug] QUERY OK source="sources" db=0.1ms idle=348.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" = ?) [52] 10:08:28.103 [debug] QUERY OK source="media_profiles" db=0.1ms idle=347.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] 10:08:28.103 [debug] QUERY OK source="media_items" db=0.2ms idle=7.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 [1301394] 10:08:28.105 [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" = ?) [1301394] 10:08:28.105 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:28.105 [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 [] 10:08:28.105 [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 [] 10:08:28.106 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:28.106 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:28.106 [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 [] 10:08:28.107 [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 [] 10:08:28.107 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/d6/4ed6a9b86b485d7fa0ba8f97d8144212f89aade96d86c7d6a5bfe2a87398ca56.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:29.336 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FgbYOHhWSF8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/22/68/226856817f4f45bf64a8003dd310bdb80a31ab9451479c7db1003cb44d4e9530.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:29.336 [error] yt-dlp download error for media item #1301393: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:29.336 [error] yt-dlp download will not be retried: "ERROR: [youtube] FgbYOHhWSF8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:29.336 [info] {"args":{"id":1301393},"id":300731,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1652743,"event":"job:stop","queue_time":3682940,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:29.343 [info] {"args":{"id":1301395},"id":300733,"meta":{},"system_time":1777561709343850941,"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"]} 10:08:29.344 [debug] QUERY OK source="media_items" db=0.2ms idle=1237.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" = ?) [1301395] 10:08:29.344 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:29.344 [debug] QUERY OK source="sources" db=0.1ms idle=1237.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" = ?) [52] 10:08:29.344 [debug] QUERY OK source="media_profiles" db=0.1ms idle=672.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] 10:08:29.345 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1301395] 10:08:29.346 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301395] 10:08:29.347 [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] 10:08:29.347 [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 [] 10:08:29.347 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:29.347 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:29.348 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:29.348 [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 [] 10:08:29.348 [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 [] 10:08:29.348 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/a0/71a0e88b2615d5a4c66b9447ad78592d1b5055685e7ccc6f45725d62a7e4e767.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:29.758 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0Vddhisd2Ks --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/d6/4ed6a9b86b485d7fa0ba8f97d8144212f89aade96d86c7d6a5bfe2a87398ca56.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:29.758 [error] yt-dlp download error for media item #1301394: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:29.758 [error] yt-dlp download will not be retried: "ERROR: [youtube] 0Vddhisd2Ks: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:29.759 [info] {"args":{"id":1301394},"id":300732,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1656348,"event":"job:stop","queue_time":4101897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:29.765 [info] {"args":{"id":1301397},"id":300734,"meta":{},"system_time":1777561709765497668,"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"]} 10:08:29.765 [debug] QUERY OK source="media_items" db=0.2ms idle=417.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" = ?) [1301397] 10:08:29.766 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:29.766 [debug] QUERY OK source="sources" db=0.1ms idle=417.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" = ?) [52] 10:08:29.766 [debug] QUERY OK source="media_profiles" db=0.1ms idle=93.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] 10:08:29.767 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301397] 10:08:29.768 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1301397] 10:08:29.768 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:29.769 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:29.769 [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 [] 10:08:29.769 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:29.770 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:29.770 [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 [] 10:08:29.770 [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 [] 10:08:29.770 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c9/c3/c9c3c06d4887a35d257a5ebb384269b7b664bfb999ab914c70785fe55de54ce1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:31.007 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hltbUYAFFaI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/a0/71a0e88b2615d5a4c66b9447ad78592d1b5055685e7ccc6f45725d62a7e4e767.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:31.007 [error] yt-dlp download error for media item #1301395: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:31.008 [error] yt-dlp download will not be retried: "ERROR: [youtube] hltbUYAFFaI: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:31.008 [info] {"args":{"id":1301395},"id":300733,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1664311,"event":"job:stop","queue_time":5342896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:31.015 [info] {"args":{"id":1301398},"id":300735,"meta":{},"system_time":1777561711014918984,"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"]} 10:08:31.015 [debug] QUERY OK source="media_items" db=0.1ms idle=1244.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" = ?) [1301398] 10:08:31.015 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:31.015 [debug] QUERY OK source="sources" db=0.1ms idle=1244.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" = ?) [52] 10:08:31.015 [debug] QUERY OK source="media_profiles" db=0.1ms idle=340.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] 10:08:31.016 [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 [1301398] 10:08:31.017 [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" = ?) [1301398] 10:08:31.017 [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] 10:08:31.017 [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 [] 10:08:31.017 [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 [] 10:08:31.017 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:31.018 [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 [] 10:08:31.019 [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 [] 10:08:31.019 [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 [] 10:08:31.019 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/36/6d369779e456b4794f9c6664dff1970e1a9ff3440cca33ecc0b922936446595d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:31.403 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=k_u9bHWWlME --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c9/c3/c9c3c06d4887a35d257a5ebb384269b7b664bfb999ab914c70785fe55de54ce1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:31.403 [error] yt-dlp download error for media item #1301397: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:31.404 [error] yt-dlp download will not be retried: "ERROR: [youtube] k_u9bHWWlME: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:31.404 [info] {"args":{"id":1301397},"id":300734,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1638601,"event":"job:stop","queue_time":5764908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:31.410 [info] {"args":{"id":1301399},"id":300736,"meta":{},"system_time":1777561711410646847,"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"]} 10:08:31.411 [debug] QUERY OK source="media_items" db=0.1ms idle=391.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" = ?) [1301399] 10:08:31.411 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:31.411 [debug] QUERY OK source="sources" db=0.1ms idle=392.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" = ?) [52] 10:08:31.411 [debug] QUERY OK source="media_profiles" db=0.1ms idle=392.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] 10:08:31.412 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301399] 10:08:31.413 [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" = ?) [1301399] 10:08:31.413 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:31.413 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:31.414 [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 [] 10:08:31.414 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:31.415 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:31.415 [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 [] 10:08:31.415 [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 [] 10:08:31.416 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/e7/4fe79ea980e6594c1fadcf79c146a681aa51fe9cdb90c18e093312ee1aad5fe4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:31.683 [info] {"args":{"id":43},"id":300652,"meta":{},"system_time":1777561711683691775,"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"]} 10:08:31.684 [debug] QUERY OK source="sources" db=0.2ms idle=268.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" = ?) [43] 10:08:31.684 [debug] QUERY OK source="settings" db=0.1ms idle=268.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 [] 10:08:31.688 [debug] QUERY OK source="media_items" db=3.4ms idle=268.5ms 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")))) [43] 10:08:31.688 [debug] QUERY OK source="media_items" db=0.2ms idle=10.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 10:08:31.688 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:08:31.689 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:31.689 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:31.692 [debug] QUERY OK source="media_items" db=2.3ms 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" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [43] 10:08:31.695 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:08:31.695 [debug] Current batch of media processed. Will check again in 1000ms 10:08:31.695 [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 [] 10:08:31.695 [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 [] 10:08:31.695 [debug] QUERY OK source="settings" db=0.0ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:31.695 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/8f/a7/8fa7711e11ba0cf33c2d4d47f308e4e53e32c65946d2d2a8a75e95fcfd4a3efc.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/5f/6d/5f6d63645ad2968c06246004aac6916304f54668bede1360b969a556bd8e5291.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:32.552 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OlfctJw_gYk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/36/6d369779e456b4794f9c6664dff1970e1a9ff3440cca33ecc0b922936446595d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:32.552 [error] yt-dlp download error for media item #1301398: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:32.552 [error] yt-dlp download will not be retried: "ERROR: [youtube] OlfctJw_gYk: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:32.553 [info] {"args":{"id":1301398},"id":300735,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1538104,"event":"job:stop","queue_time":7013901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:32.560 [info] {"args":{"id":1301400},"id":300737,"meta":{},"system_time":1777561712560411047,"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"]} 10:08:32.560 [debug] QUERY OK source="media_items" db=0.1ms idle=865.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" = ?) [1301400] 10:08:32.560 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:32.561 [debug] QUERY OK source="sources" db=0.1ms idle=865.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" = ?) [52] 10:08:32.561 [debug] QUERY OK source="media_profiles" db=0.1ms idle=865.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] 10:08:32.561 [debug] QUERY OK source="media_items" db=0.2ms 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 [1301400] 10:08:32.562 [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" = ?) [1301400] 10:08:32.562 [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] 10:08:32.563 [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 [] 10:08:32.563 [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 [] 10:08:32.563 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:32.566 [debug] QUERY OK source="settings" db=0.1ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:32.566 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:08:32.567 [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 [] 10:08:32.567 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fe/f5/fef5517204f3bd327611cbd23e2e2393349126b0071d548cd43d1afac5ed099e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:32.695 [debug] Current batch of media processed. Will check again in 1000ms 10:08:32.752 [info] GET /sources/27/media/914116 10:08:32.752 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "914116", "source_id" => "27"} Pipelines: [:browser] 10:08:32.753 [debug] QUERY OK source="media_items" db=0.2ms idle=189.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" = ?) [914116] 10:08:32.753 [debug] QUERY OK source="tasks" db=0.0ms idle=186.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" [914116] 10:08:32.753 [debug] QUERY OK source="sources" db=0.2ms idle=186.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" = ?) [27] 10:08:32.753 [debug] QUERY OK source="settings" db=0.0ms idle=186.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:32.754 [debug] QUERY OK source="settings" db=0.1ms idle=75.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 [] 10:08:32.754 [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 [] 10:08:32.754 [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] 10:08:32.755 [info] Sent 200 in 3ms 10:08:33.233 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=jG9GNWAJOv0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/e7/4fe79ea980e6594c1fadcf79c146a681aa51fe9cdb90c18e093312ee1aad5fe4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:33.233 [error] yt-dlp download error for media item #1301399: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:33.234 [error] yt-dlp download will not be retried: "ERROR: [youtube] jG9GNWAJOv0: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:33.234 [info] {"args":{"id":1301399},"id":300736,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1823505,"event":"job:stop","queue_time":7409916,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:33.240 [info] {"args":{"id":2720968},"id":300738,"meta":{},"system_time":1777561713240588558,"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"]} 10:08:33.241 [debug] QUERY OK source="media_items" db=0.1ms idle=486.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" = ?) [2720968] 10:08:33.241 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:08:33.241 [debug] QUERY OK source="sources" db=0.1ms idle=486.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" = ?) [52] 10:08:33.241 [debug] QUERY OK source="media_profiles" db=0.1ms idle=486.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] 10:08:33.242 [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 [2720968] 10:08:33.246 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [2720968] 10:08:33.246 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:33.246 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 10:08:33.247 [debug] QUERY OK source="settings" db=0.0ms idle=5.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 [] 10:08:33.247 [debug] Running yt-dlp command for action: get_downloadable_status 10:08:33.248 [debug] QUERY OK source="settings" db=0.0ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:33.248 [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 [] 10:08:33.248 [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 [] 10:08:33.248 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e2/d5/e2d5f89332523075fc6f072a2fff84cdc6d274f9c98d85ee9da5dc3c5fb95d57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:08:33.697 [debug] Current batch of media processed. Will check again in 1000ms 10:08:34.242 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=puuxmiVlgk8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fe/f5/fef5517204f3bd327611cbd23e2e2393349126b0071d548cd43d1afac5ed099e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:34.242 [error] yt-dlp download error for media item #1301400: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:34.242 [error] yt-dlp download will not be retried: "ERROR: [youtube] puuxmiVlgk8: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:34.243 [info] {"args":{"id":1301400},"id":300737,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1682347,"event":"job:stop","queue_time":8559004,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:34.698 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "duration" => 650, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", "id" => "dpLkatTCfzU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dpLkatTCfzU", "playlist_index" => 1, "timestamp" => 1777540799, "title" => "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "upload_date" => "20260430"} 10:08:34.698 [debug] QUERY OK source="sources" db=0.2ms idle=455.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 (?)) [43] 10:08:34.699 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 10:08:34.702 [debug] QUERY OK source="media_items" db=3.3ms idle=162.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 09:19:59Z], 43] 10:08:34.704 [debug] QUERY OK source="media_items" db=0.8ms idle=165.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "46d9ba97-ec35-4478-8bfc-8b25bff1547c", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, false, false, 43, [], 98, ~U[2026-04-30 09:19:59Z], ~U[2026-04-30 15:08:34Z], ~U[2026-04-30 15:08:34Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, 43, ~U[2026-04-30 09:19:59Z]] 10:08:34.704 [debug] QUERY OK source="sources" db=0.1ms idle=22.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" = ?) [43] 10:08:34.704 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.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] 10:08:34.705 [debug] QUERY OK source="media_items" db=0.2ms idle=5.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 [2844241] 10:08:34.705 [info] Kicking off download for media item #2844241 (dpLkatTCfzU) 10:08:34.706 [debug] Current batch of media processed. Will check again in 1000ms 10:08:34.942 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=45t1DvSTmEA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e2/d5/e2d5f89332523075fc6f072a2fff84cdc6d274f9c98d85ee9da5dc3c5fb95d57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 10:08:34.942 [error] yt-dlp download error for media item #2720968: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:34.943 [error] yt-dlp download will not be retried: "ERROR: [youtube] 45t1DvSTmEA: This video is available to this channel's members on level: Tier 2 (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 10:08:34.943 [info] {"args":{"id":2720968},"id":300738,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1702473,"event":"job:stop","queue_time":9239946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:08:35.707 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "duration" => 742, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", "id" => "3NYDU_L6dw4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3NYDU_L6dw4", "playlist_index" => 2, "timestamp" => 1777449571, "title" => "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "upload_date" => "20260429"} 10:08:35.707 [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 (?)) [43] 10:08:35.708 [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" = ?) [43] 10:08:35.711 [debug] QUERY OK source="media_items" db=3.2ms idle=764.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 07:59:31Z], 43] 10:08:35.712 [debug] QUERY OK source="media_items" db=0.8ms idle=762.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "9df0a4b5-a4e2-405f-9e77-dd84b87705d2", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, false, false, 43, [], 98, ~U[2026-04-29 07:59:31Z], ~U[2026-04-30 15:08:35Z], ~U[2026-04-30 15:08:35Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, 43, ~U[2026-04-29 07:59:31Z]] 10:08:35.713 [debug] QUERY OK source="sources" db=0.1ms idle=29.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" = ?) [43] 10:08:35.713 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:35.713 [debug] QUERY OK source="media_items" db=0.2ms 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 [2836327] 10:08:35.714 [info] Kicking off download for media item #2836327 (3NYDU_L6dw4) 10:08:35.715 [debug] Current batch of media processed. Will check again in 1000ms 10:08:36.716 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "duration" => 703, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", "id" => "8winLglfLs4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8winLglfLs4", "playlist_index" => 3, "timestamp" => 1777368822, "title" => "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "upload_date" => "20260428"} 10:08:36.716 [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" IN (?)) [43] 10:08:36.716 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [43] 10:08:36.720 [debug] QUERY OK source="media_items" db=3.6ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 09:33:42Z], 43] 10:08:36.721 [info] {"source":"oban","duration":3500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:36.722 [debug] QUERY OK source="media_items" db=0.8ms idle=36.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "ed03eabc-132d-49e9-b9de-942710744283", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, false, false, 43, [], 98, ~U[2026-04-28 09:33:42Z], ~U[2026-04-30 15:08:36Z], ~U[2026-04-30 15:08:36Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, 43, ~U[2026-04-28 09:33:42Z]] 10:08:36.722 [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" = ?) [43] 10:08:36.722 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:36.723 [debug] QUERY OK source="media_items" db=0.4ms 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 [2828869] 10:08:36.723 [info] Kicking off download for media item #2828869 (8winLglfLs4) 10:08:36.725 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "duration" => 1208, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", "id" => "vfwU_hmIBuY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vfwU_hmIBuY", "playlist_index" => 4, "timestamp" => 1777279766, "title" => "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "upload_date" => "20260427"} 10:08:36.725 [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" IN (?)) [43] 10:08:36.725 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:36.728 [debug] QUERY OK source="media_items" db=2.8ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 08:49:26Z], 43] 10:08:36.731 [debug] QUERY OK source="media_items" db=2.6ms idle=5.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "6bbe9063-79e3-41c0-b0f2-98ca2bea0dba", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, false, false, 43, [], 97, ~U[2026-04-27 08:49:26Z], ~U[2026-04-30 15:08:36Z], ~U[2026-04-30 15:08:36Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, 43, ~U[2026-04-27 08:49:26Z]] 10:08:36.731 [debug] QUERY OK source="sources" db=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" = ?) [43] 10:08:36.731 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:36.732 [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 [2821216] 10:08:36.732 [info] Kicking off download for media item #2821216 (vfwU_hmIBuY) 10:08:36.733 [debug] Current batch of media processed. Will check again in 1000ms 10:08:37.734 [debug] Current batch of media processed. Will check again in 1000ms 10:08:38.735 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "duration" => 641, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", "id" => "1F7Y7lRCJio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1F7Y7lRCJio", "playlist_index" => 5, "timestamp" => 1777276004, "title" => "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "upload_date" => "20260427"} 10:08:38.735 [debug] QUERY OK source="sources" db=0.1ms 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" IN (?)) [43] 10:08:38.736 [debug] QUERY OK source="sources" db=0.2ms idle=198.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" = ?) [43] 10:08:38.739 [debug] QUERY OK source="media_items" db=3.2ms idle=199.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 07:46:44Z], 43] 10:08:38.740 [debug] QUERY OK source="media_items" db=0.7ms idle=202.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "975bdcb3-ed9a-49b7-a05e-a37671f96aca", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, false, false, 43, [], 97, ~U[2026-04-27 07:46:44Z], ~U[2026-04-30 15:08:38Z], ~U[2026-04-30 15:08:38Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, 43, ~U[2026-04-27 07:46:44Z]] 10:08:38.740 [debug] QUERY OK source="sources" db=0.1ms idle=52.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" = ?) [43] 10:08:38.741 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:38.741 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2820987] 10:08:38.741 [info] Kicking off download for media item #2820987 (1F7Y7lRCJio) 10:08:38.743 [debug] Current batch of media processed. Will check again in 1000ms 10:08:39.744 [debug] Current batch of media processed. Will check again in 1000ms 10:08:40.745 [debug] Current batch of media processed. Will check again in 1000ms 10:08:41.747 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "duration" => 1546, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", "id" => "Z6n5r6Y47n8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "playlist_index" => 6, "timestamp" => 1777105961, "title" => "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "upload_date" => "20260425"} 10:08:41.747 [debug] QUERY OK source="sources" db=0.2ms idle=1210.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 (?)) [43] 10:08:41.748 [debug] QUERY OK source="sources" db=0.1ms idle=1210.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" = ?) [43] 10:08:41.751 [debug] QUERY OK source="media_items" db=3.2ms idle=1210.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 08:32:41Z], 43] 10:08:41.753 [debug] QUERY OK source="media_items" db=1.3ms idle=1060.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "1417db5b-313b-490d-85cb-3b8b180f7afb", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-25 08:32:41Z], ~U[2026-04-30 15:08:41Z], ~U[2026-04-30 15:08:41Z], "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, 43, ~U[2026-04-25 08:32:41Z]] 10:08:41.753 [debug] QUERY OK source="sources" db=0.1ms idle=61.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" = ?) [43] 10:08:41.753 [debug] QUERY OK source="media_profiles" db=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] 10:08:41.754 [debug] QUERY OK source="media_items" db=0.2ms 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 [2805841] 10:08:41.754 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "duration" => 575, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", "id" => "f6L4BufLrho", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f6L4BufLrho", "playlist_index" => 7, "timestamp" => 1777021280, "title" => "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "upload_date" => "20260424"} 10:08:41.754 [debug] QUERY OK source="sources" db=0.4ms 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" IN (?)) [43] 10:08:41.755 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:41.758 [debug] QUERY OK source="media_items" db=2.8ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 09:01:20Z], 43] 10:08:41.759 [debug] QUERY OK source="media_items" db=0.7ms idle=4.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "dd9cffff-71d6-411b-a53f-86f2bef2f451", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, false, false, 43, [], 98, ~U[2026-04-24 09:01:20Z], ~U[2026-04-30 15:08:41Z], ~U[2026-04-30 15:08:41Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, 43, ~U[2026-04-24 09:01:20Z]] 10:08:41.759 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 10:08:41.759 [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] 10:08:41.760 [debug] QUERY OK source="media_items" db=0.2ms idle=4.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 [2798388] 10:08:41.760 [info] Kicking off download for media item #2798388 (f6L4BufLrho) 10:08:41.761 [debug] Current batch of media processed. Will check again in 1000ms 10:08:42.762 [debug] Current batch of media processed. Will check again in 1000ms 10:08:43.763 [debug] Current batch of media processed. Will check again in 1000ms 10:08:44.764 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "duration" => 1597, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", "id" => "4MYxtL0AW2g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4MYxtL0AW2g", "playlist_index" => 8, "timestamp" => 1776935277, "title" => "Ubuntu 26.04: there are some big changes in there!", "upload_date" => "20260423"} 10:08:44.765 [debug] QUERY OK source="sources" db=0.2ms idle=1228.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 (?)) [43] 10:08:44.765 [debug] QUERY OK source="sources" db=0.1ms idle=1228.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" = ?) [43] 10:08:44.769 [debug] QUERY OK source="media_items" db=3.4ms idle=1228.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 09:07:57Z], 43] 10:08:44.771 [debug] QUERY OK source="media_items" db=1.5ms idle=1075.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "b790a429-3d35-4a8b-a266-33c76defd56f", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, false, false, 43, [], 97, ~U[2026-04-23 09:07:57Z], ~U[2026-04-30 15:08:44Z], ~U[2026-04-30 15:08:44Z], "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, 43, ~U[2026-04-23 09:07:57Z]] 10:08:44.771 [debug] QUERY OK source="sources" db=0.1ms idle=76.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" = ?) [43] 10:08:44.771 [debug] QUERY OK source="media_profiles" db=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] 10:08:44.772 [debug] QUERY OK source="media_items" db=0.1ms 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 [2790678] 10:08:44.772 [debug] Current batch of media processed. Will check again in 1000ms 10:08:45.773 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "duration" => 618, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", "id" => "BHoJYgBFA4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BHoJYgBFA4c", "playlist_index" => 9, "timestamp" => 1776928984, "title" => "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "upload_date" => "20260423"} 10:08:45.773 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [43] 10:08:45.774 [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" = ?) [43] 10:08:45.777 [debug] QUERY OK source="media_items" db=3.4ms idle=1002.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 07:23:04Z], 43] 10:08:45.778 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "e5cea5a2-db47-42e3-8cf9-0d26872f7595", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, false, false, 43, [], 97, ~U[2026-04-23 07:23:04Z], ~U[2026-04-30 15:08:45Z], ~U[2026-04-30 15:08:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, 43, ~U[2026-04-23 07:23:04Z]] 10:08:45.779 [debug] QUERY OK source="sources" db=0.1ms idle=82.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" = ?) [43] 10:08:45.779 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:45.779 [debug] QUERY OK source="media_items" db=0.1ms 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 [2790072] 10:08:45.779 [info] Kicking off download for media item #2790072 (BHoJYgBFA4c) 10:08:45.781 [debug] Current batch of media processed. Will check again in 1000ms 10:08:46.782 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "duration" => 487, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", "id" => "0SzaAJvLL_g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0SzaAJvLL_g", "playlist_index" => 10, "timestamp" => 1776850199, "title" => "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "upload_date" => "20260422"} 10:08:46.782 [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" IN (?)) [43] 10:08:46.783 [debug] QUERY OK source="sources" db=0.1ms idle=1003.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" = ?) [43] 10:08:46.786 [debug] QUERY OK source="media_items" db=3.2ms idle=1003.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 09:29:59Z], 43] 10:08:46.787 [debug] QUERY OK source="media_items" db=0.9ms idle=1005.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "59a41f84-3352-48a1-8af7-eee3fc411ba2", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, false, false, 43, [], 98, ~U[2026-04-22 09:29:59Z], ~U[2026-04-30 15:08:46Z], ~U[2026-04-30 15:08:46Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, 43, ~U[2026-04-22 09:29:59Z]] 10:08:46.788 [debug] QUERY OK source="sources" db=0.2ms idle=89.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" = ?) [43] 10:08:46.788 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:46.788 [debug] QUERY OK source="media_items" db=0.2ms 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 [2783182] 10:08:46.788 [info] Kicking off download for media item #2783182 (0SzaAJvLL_g) 10:08:46.790 [debug] Current batch of media processed. Will check again in 1000ms 10:08:47.791 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "duration" => 467, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", "id" => "BQ2_0v3ZS5g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "playlist_index" => 11, "timestamp" => 1776758844, "title" => "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "upload_date" => "20260421"} 10:08:47.791 [debug] QUERY OK source="sources" db=0.1ms 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 (?)) [43] 10:08:47.791 [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" = ?) [43] 10:08:47.795 [debug] QUERY OK source="media_items" db=3.5ms idle=1003.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 08:07:24Z], 43] 10:08:47.796 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "309bca61-9a61-4786-ab58-7bc40f856644", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, false, false, 43, [], 98, ~U[2026-04-21 08:07:24Z], ~U[2026-04-30 15:08:47Z], ~U[2026-04-30 15:08:47Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, 43, ~U[2026-04-21 08:07:24Z]] 10:08:47.797 [debug] QUERY OK source="sources" db=0.2ms idle=97.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" = ?) [43] 10:08:47.797 [debug] QUERY OK source="media_profiles" db=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] 10:08:47.797 [debug] QUERY OK source="media_items" db=0.1ms idle=5.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 [2775036] 10:08:47.797 [info] Kicking off download for media item #2775036 (BQ2_0v3ZS5g) 10:08:47.799 [debug] Current batch of media processed. Will check again in 1000ms 10:08:48.800 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "duration" => 1309, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", "id" => "eUETENsa3B4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eUETENsa3B4", "playlist_index" => 12, "timestamp" => 1776677857, "title" => "Patroncast S06E16 - Work Life balance", "upload_date" => "20260420"} 10:08:48.801 [debug] QUERY OK source="sources" db=0.3ms idle=1004.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 (?)) [43] 10:08:48.802 [debug] QUERY OK source="sources" db=0.0ms idle=1004.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" = ?) [43] 10:08:48.805 [debug] QUERY OK source="media_items" db=3.4ms idle=1004.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 09:37:37Z], 43] 10:08:48.806 [debug] QUERY OK source="media_items" db=0.5ms idle=1006.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "8a764a8a-b1e1-45e3-8940-074715986f6e", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, false, false, 43, [], 97, ~U[2026-04-20 09:37:37Z], ~U[2026-04-30 15:08:48Z], ~U[2026-04-30 15:08:48Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, 43, ~U[2026-04-20 09:37:37Z]] 10:08:48.806 [debug] QUERY OK source="sources" db=0.2ms idle=105.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" = ?) [43] 10:08:48.806 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:48.807 [debug] QUERY OK source="media_items" db=0.1ms 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 [2767565] 10:08:48.807 [info] Kicking off download for media item #2767565 (eUETENsa3B4) 10:08:48.808 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "duration" => 538, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", "id" => "Z4f1eHVqj0Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "playlist_index" => 13, "timestamp" => 1776674621, "title" => "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "upload_date" => "20260420"} 10:08:48.809 [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" IN (?)) [43] 10:08:48.809 [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" = ?) [43] 10:08:48.812 [debug] QUERY OK source="media_items" db=3.1ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 08:43:41Z], 43] 10:08:48.813 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "99b73adc-1493-4ae0-979e-f4b625d5740c", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, false, false, 43, [], 97, ~U[2026-04-20 08:43:41Z], ~U[2026-04-30 15:08:48Z], ~U[2026-04-30 15:08:48Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, 43, ~U[2026-04-20 08:43:41Z]] 10:08:48.814 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 10:08:48.814 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:08:48.814 [debug] QUERY OK source="media_items" db=0.1ms 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 [2767301] 10:08:48.814 [info] Kicking off download for media item #2767301 (Z4f1eHVqj0Y) 10:08:48.816 [debug] Current batch of media processed. Will check again in 1000ms 10:08:49.817 [debug] Current batch of media processed. Will check again in 1000ms 10:08:50.818 [debug] Current batch of media processed. Will check again in 1000ms 10:08:51.819 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "duration" => 1525, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", "id" => "IkAld223VYI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IkAld223VYI", "playlist_index" => 14, "timestamp" => 1776503681, "title" => "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "upload_date" => "20260418"} 10:08:51.820 [debug] QUERY OK source="sources" db=0.2ms idle=1282.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 (?)) [43] 10:08:51.820 [debug] QUERY OK source="sources" db=0.1ms idle=1283.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" = ?) [43] 10:08:51.823 [debug] QUERY OK source="media_items" db=3.2ms idle=1283.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 09:14:41Z], 43] 10:08:51.825 [debug] QUERY OK source="media_items" db=1.3ms idle=1121.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "8f076103-0a4a-4049-98ae-30d7453afb2f", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-18 09:14:41Z], ~U[2026-04-30 15:08:51Z], ~U[2026-04-30 15:08:51Z], "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, 43, ~U[2026-04-18 09:14:41Z]] 10:08:51.826 [debug] QUERY OK source="sources" db=0.1ms idle=122.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" = ?) [43] 10:08:51.826 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:51.826 [debug] QUERY OK source="media_items" db=0.2ms 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 [2751495] 10:08:51.826 [debug] Current batch of media processed. Will check again in 1000ms 10:08:52.677 [info] GET /sources/17/media/12953 10:08:52.677 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12953", "prevent_download" => "true", "source_id" => "17"} Pipelines: [:browser] 10:08:52.678 [debug] QUERY OK source="media_items" db=0.7ms idle=854.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" = ?) [12953] 10:08:52.679 [debug] QUERY OK source="tasks" db=0.1ms idle=853.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" [12953] 10:08:52.679 [debug] QUERY OK source="sources" db=0.1ms idle=852.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" = ?) [17] 10:08:52.679 [debug] QUERY OK source="settings" db=0.0ms idle=853.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:52.679 [debug] QUERY OK source="settings" db=0.0ms idle=852.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:08:52.680 [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 [] 10:08:52.680 [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] 10:08:52.681 [info] Sent 200 in 3ms 10:08:52.827 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "duration" => 688, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", "id" => "ZNMeTQIukQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZNMeTQIukQs", "playlist_index" => 15, "timestamp" => 1776411839, "title" => "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "upload_date" => "20260417"} 10:08:52.827 [debug] QUERY OK source="sources" db=0.1ms idle=147.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 (?)) [43] 10:08:52.827 [debug] QUERY OK source="sources" db=0.1ms idle=147.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" = ?) [43] 10:08:52.831 [debug] QUERY OK source="media_items" db=3.3ms idle=147.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 07:43:59Z], 43] 10:08:52.832 [debug] QUERY OK source="media_items" db=0.7ms idle=151.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "894f60ab-8f33-4414-a352-5c505eaa9163", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, false, false, 43, [], 98, ~U[2026-04-17 07:43:59Z], ~U[2026-04-30 15:08:52Z], ~U[2026-04-30 15:08:52Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, 43, ~U[2026-04-17 07:43:59Z]] 10:08:52.832 [debug] QUERY OK source="sources" db=0.1ms idle=127.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" = ?) [43] 10:08:52.833 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.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] 10:08:52.833 [debug] QUERY OK source="media_items" db=0.1ms 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 [2743172] 10:08:52.833 [info] Kicking off download for media item #2743172 (ZNMeTQIukQs) 10:08:52.834 [debug] Current batch of media processed. Will check again in 1000ms 10:08:53.835 [debug] Current batch of media processed. Will check again in 1000ms 10:08:54.836 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "duration" => 1341, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", "id" => "4NdlRlie-A8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4NdlRlie-A8", "playlist_index" => 16, "timestamp" => 1776346462, "title" => "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "upload_date" => "20260416"} 10:08:54.837 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=299.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 (?)) [43] 10:08:54.837 [debug] QUERY OK source="sources" db=0.1ms idle=300.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" = ?) [43] 10:08:54.840 [debug] QUERY OK source="media_items" db=3.2ms idle=300.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 13:34:22Z], 43] 10:08:54.842 [debug] QUERY OK source="media_items" db=0.9ms idle=304.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "e10f01f6-1b55-4622-a1bc-510c42f5e796", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, false, false, 43, [], 97, ~U[2026-04-16 13:34:22Z], ~U[2026-04-30 15:08:54Z], ~U[2026-04-30 15:08:54Z], "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, 43, ~U[2026-04-16 13:34:22Z]] 10:08:54.842 [debug] QUERY OK source="sources" db=0.1ms idle=134.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" = ?) [43] 10:08:54.842 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:08:54.843 [debug] QUERY OK source="media_items" db=0.2ms 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 [2739293] 10:08:54.843 [info] Kicking off download for media item #2739293 (4NdlRlie-A8) 10:08:54.844 [debug] Current batch of media processed. Will check again in 1000ms 10:08:55.845 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "duration" => 664, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", "id" => "k9VpY6M5Wfs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "playlist_index" => 17, "timestamp" => 1776331242, "title" => "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "upload_date" => "20260416"} 10:08:55.846 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.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 (?)) [43] 10:08:55.846 [debug] QUERY OK source="sources" db=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" = ?) [43] 10:08:55.850 [debug] QUERY OK source="media_items" db=3.2ms idle=1003.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 09:20:42Z], 43] 10:08:55.867 [debug] QUERY OK source="media_items" db=17.0ms idle=1006.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "f059cdc7-4f90-4de4-b30c-279bd7182c02", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, false, false, 43, [], 97, ~U[2026-04-16 09:20:42Z], ~U[2026-04-30 15:08:55Z], ~U[2026-04-30 15:08:55Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, 43, ~U[2026-04-16 09:20:42Z]] 10:08:55.868 [debug] QUERY OK source="sources" db=0.2ms idle=158.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" = ?) [43] 10:08:55.868 [debug] QUERY OK source="media_profiles" db=0.1ms idle=21.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] 10:08:55.868 [debug] QUERY OK source="media_items" db=0.2ms idle=21.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 [2739295] 10:08:55.868 [info] Kicking off download for media item #2739295 (k9VpY6M5Wfs) 10:08:55.870 [debug] Current batch of media processed. Will check again in 1000ms 10:08:56.871 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "duration" => 517, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", "id" => "jg32Zpd7KpU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jg32Zpd7KpU", "playlist_index" => 18, "timestamp" => 1776242206, "title" => "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "upload_date" => "20260415"} 10:08:56.872 [debug] QUERY OK source="sources" db=0.1ms idle=1004.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 (?)) [43] 10:08:56.872 [debug] QUERY OK source="sources" db=0.0ms idle=1004.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" = ?) [43] 10:08:56.876 [debug] QUERY OK source="media_items" db=3.1ms idle=1003.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 08:36:46Z], 43] 10:08:56.881 [debug] QUERY OK source="media_items" db=4.9ms idle=1006.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "fe9a3d6a-6480-4c79-9aca-5e10198c6612", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, false, false, 43, [], 98, ~U[2026-04-15 08:36:46Z], ~U[2026-04-30 15:08:56Z], ~U[2026-04-30 15:08:56Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, 43, ~U[2026-04-15 08:36:46Z]] 10:08:56.882 [debug] QUERY OK source="sources" db=0.4ms idle=170.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" = ?) [43] 10:08:56.882 [debug] QUERY OK source="media_profiles" db=0.1ms idle=9.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] 10:08:56.882 [debug] QUERY OK source="media_items" db=0.2ms idle=10.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 [2734222] 10:08:56.883 [info] Kicking off download for media item #2734222 (jg32Zpd7KpU) 10:08:56.885 [debug] Current batch of media processed. Will check again in 1000ms 10:08:57.286 [info] GET /sources/17/media/12955 10:08:57.287 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "12955", "prevent_download" => "true", "source_id" => "17"} Pipelines: [:browser] 10:08:57.287 [debug] QUERY OK source="media_items" db=0.1ms idle=406.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" = ?) [12955] 10:08:57.287 [debug] QUERY OK source="tasks" db=0.1ms idle=405.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" [12955] 10:08:57.288 [debug] QUERY OK source="sources" db=0.1ms idle=405.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" = ?) [17] 10:08:57.288 [debug] QUERY OK source="settings" db=0.0ms idle=405.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 [] 10:08:57.288 [debug] QUERY OK source="settings" db=0.0ms idle=403.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 [] 10:08:57.288 [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 [] 10:08:57.289 [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] 10:08:57.289 [info] Sent 200 in 3ms 10:08:57.681 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/8f/a7/8fa7711e11ba0cf33c2d4d47f308e4e53e32c65946d2d2a8a75e95fcfd4a3efc.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/5f/6d/5f6d63645ad2968c06246004aac6916304f54668bede1360b969a556bd8e5291.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 10:08:57.682 [debug] Gracefully stopping file follower 10:08:57.682 [debug] QUERY OK source="sources" db=0.2ms idle=394.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 (?)) [43] 10:08:57.682 [debug] QUERY OK source="sources" db=0.1ms idle=394.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" = ?) [43] 10:08:57.686 [debug] QUERY OK source="media_items" db=3.2ms idle=394.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 09:19:59Z], 43] 10:08:57.687 [debug] QUERY OK source="media_items" db=0.7ms idle=397.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "e8618070-5bf1-44e1-8967-78ef4c4698ec", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, false, false, 43, [], 98, ~U[2026-04-30 09:19:59Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 PS5 can run Linux now\n02:46 New campaign fighting back against Android lockdown\n06:08 Developer revives GTK2\n08:04 Apple apparently gives up on their VR efforts\n\nLinks:\nPS5 can run Linux now\nhttps://www.omgubuntu.co.uk/2026/04/ps5-linux-steam\nhttps://github.com/ps5-linux/ps5-linux-loader\n\nNew campaign fighting back against Android lockdown\nhttps://keepandroidopen.org/en/\n\nDeveloper revives GTK2\nhttps://devuanusers.com/thread-gtk2-revival-thread--80\n\nApple apparently gives up on their VR efforts\nhttps://www.macrumors.com/2026/04/29/apple-vision-pro-m5-flop/", "Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project", "dpLkatTCfzU", 650, false, "https://www.youtube.com/watch?v=dpLkatTCfzU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e043000_Daily Linux News - S03E84 - PS5 can run Linux now, GTK2 revival project.NA", false, 43, ~U[2026-04-30 09:19:59Z]] 10:08:57.687 [debug] QUERY OK source="sources" db=0.2ms idle=398.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" = ?) [43] 10:08:57.690 [debug] QUERY OK source="media_items" db=3.0ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-29 07:59:31Z], 43] 10:08:57.692 [debug] QUERY OK source="media_items" db=0.9ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "7cdea038-3780-4945-b42a-c4af47a08722", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, false, false, 43, [], 98, ~U[2026-04-29 07:59:31Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu clarifies their inclusion of AI features\n04:00 Ubuntu LTS beats Windows 11 in benchmarks, again\n05:39 Anthropic now funds Blender\n08:30 Sovereign Tech Agency now sponsors work on open standards\n10:19 Fedora 44 released\n\nLinks:\nUbuntu clarifies their inclusion of AI features\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130/41\n\nUbuntu LTS beats Windows 11 in benchmarks, again\nhttps://www.phoronix.com/review/ubuntu-2604-windows-11/7\n\nAnthropic now funds Blender\nhttps://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/\nhttps://www.anthropic.com/news/claude-for-creative-work\n\nSovereign Tech Agency now sponsors work on open standards\nhttps://www.sovereign.tech/news/join-sovereign-tech-standards-network\n\nFedora 44 released\nhttps://fedoramagazine.org/announcing-fedora-linux-44/\nhttps://fedoramagazine.org/whats-new-in-fedora-kde-plasma-desktop-44/\nhttps://fedoramagazine.org/fedora-asahi-remix-44-is-now-available/", "Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44", "3NYDU_L6dw4", 742, false, "https://www.youtube.com/watch?v=3NYDU_L6dw4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042900_Daily Linux News -S03E83- Ubuntu clarifies their position on AI, Anthropic funds Blender, Fedora 44.NA", false, 43, ~U[2026-04-29 07:59:31Z]] 10:08:57.692 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.695 [debug] QUERY OK source="media_items" db=2.8ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 09:33:42Z], 43] 10:08:57.697 [debug] QUERY OK source="media_items" db=0.8ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "60891604-b734-4ec0-9ee8-6aeefb175596", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, false, false, 43, [], 98, ~U[2026-04-28 09:33:42Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Steam Controller announced at 99USD\n02:56 Ubuntu will add AI features in the future\n06:18 Kdenlive gets big update\n08:12 EU asks Google to open Android to other AI tools\n\nLinks:\nSteam Controller announced at 99USD\nhttps://store.steampowered.com/sale/steamcontroller\nhttps://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026\nhttps://www.gamingonlinux.com/2026/04/valve-have-plans-for-the-steam-deck-2-plus-a-brief-steam-machine-steam-frame-update/\n\nUbuntu will add AI features in the future\nhttps://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130?u=d0od\n\nKdenlive gets big update\nhttps://kdenlive.org/news/releases/26.04.0/\n\nEU asks Google to open Android to other AI tools\nhttps://arstechnica.com/ai/2026/04/europe-could-force-google-to-open-android-to-other-ai-assistants/", "Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features", "8winLglfLs4", 703, false, "https://www.youtube.com/watch?v=8winLglfLs4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042800_Daily Linux News - S03E82 - Steam Controller is here, Ubuntu will add AI features.NA", false, 43, ~U[2026-04-28 09:33:42Z]] 10:08:57.697 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 10:08:57.700 [debug] QUERY OK source="media_items" db=2.8ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 08:49:26Z], 43] 10:08:57.701 [debug] QUERY OK source="media_items" db=0.6ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "2f4511a1-04ff-46d9-b50c-94016d89e611", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, false, false, 43, [], 97, ~U[2026-04-27 08:49:26Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 The Linux Cast\n05:38 Planning moves back to Open Source\n\nLink to the Linux Cast episode: https://podcast.thelinuxcast.org/229", "Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source", "vfwU_hmIBuY", 1208, false, "https://www.youtube.com/watch?v=vfwU_hmIBuY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Patroncast - S06E17 - The Linux Cast & Planning moves back to Open Source.NA", false, 43, ~U[2026-04-27 08:49:26Z]] 10:08:57.702 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.705 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-27 07:46:44Z], 43] 10:08:57.706 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "1d71b2a4-4f76-4b02-b822-25cc33c23374", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, false, false, 43, [], 97, ~U[2026-04-27 07:46:44Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF doesn't like the Repsonsible AI licenses\n05:03 Colorado adds exemption for open source to age verification\n06:53 EU app for age verification is structurally flawed\n09:14 Framework Pro's Linux version outsells the Windows one\n\nLinks:\n\nFSF doesn't like the Repsonsible AI licenses\nhttps://www.fsf.org/blogs/licensing/rail-are-nonfree-and-unethical\nhttps://www.licenses.ai/ai-licenses\n\nColorado adds exemption for open source to age verification\nhttps://linuxiac.com/colorado-adds-open-source-exemption-to-age-attestation-bill/\n\nEU app for age verification is structurally flawed\nhttps://www.techradar.com/vpn/vpn-privacy-security/the-eus-age-verification-app-has-a-privacy-problem-and-it-may-be-more-than-just-a-bug-in-an-app\n\nFramework Pro's Linux version outsells the Windows one\nhttps://www.pcworld.com/article/3123900/framework-new-linux-laptop-is-selling-faster-than-its-windows-one.html", "Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed", "1F7Y7lRCJio", 641, false, "https://www.youtube.com/watch?v=1F7Y7lRCJio", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042700_Daily Linux News - S03E81 - FSF says no to responsible AI licenses, EU age verification app flawed.NA", false, 43, ~U[2026-04-27 07:46:44Z]] 10:08:57.706 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.709 [debug] QUERY OK source="media_items" db=2.7ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-25 08:32:41Z], 43] 10:08:57.714 [debug] QUERY OK source="media_items" db=3.9ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "e594f285-1bec-4559-9e54-bf1507d0373e", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-25 08:32:41Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "Head to https://squarespace.com/thelinuxexperiment to save 10% off your first purchase of a website or domain using code thelinuxexperiment\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n Timestamps\n \n00:00 Intro\n00:31 Sponsor: SquareSpace\n01:47 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:57 More (good) age verification news\n06:37 Proton's CEO talks age verification\n08:52 People lose their minds over Mozilla's new mascot\n10:10 Debian elects new project lead\n11:37 Ubuntu 26.04 released\n14:39 Ubuntu's audit of the Rust Core Utilities\n16:07 New Linux powered console\n17:43 Firefox talks more about their Smart Window feature\n19:38 Mozilla found 271 flaws using Anthropic Mythos\n21:49 Valve gives devs more info on how their game runs on Deck\n23:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\n\n#linuxdesktop #linuxnews #linuxdistro", "FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News", "Z6n5r6Y47n8", 1546, false, "https://www.youtube.com/watch?v=Z6n5r6Y47n8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042500_FSF settles the Office Suite debacle, good news on age verification - Linux Weekly News.mp4", false, 43, ~U[2026-04-25 08:32:41Z]] 10:08:57.714 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.717 [debug] QUERY OK source="media_items" db=2.8ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 09:01:20Z], 43] 10:08:57.718 [debug] QUERY OK source="media_items" db=0.9ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "779933ed-d9b2-4ba3-a6f6-aefdd6f57ce7", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, false, false, 43, [], 98, ~U[2026-04-24 09:01:20Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu 26.04 released\n04:19 Valve gives devs more info on how their game runs on Deck\n06:49 Proton's CEO talks age verification\n\n\nLinks:\nUbuntu 26.04 released\nhttps://itsfoss.com/news/kubuntu-26-04-lts/\nhttps://youtu.be/4MYxtL0AW2g\n\nValve gives devs more info on how their game runs on Deck\nhttps://www.gamingonlinux.com/2026/04/valve-make-steps-to-improve-steam-deck-verification-giving-developers-more-performance-data/\n\nProton's CEO talks age verification\nhttps://proton.me/blog/keep-age-verification-from-killing-anonymity-online", "Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs", "f6L4BufLrho", 575, false, "https://www.youtube.com/watch?v=f6L4BufLrho", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042400_Daily Linux News - S03E80 - Proton speaks against age verification, Ubuntu 26.04, Valve helps devs.NA", false, 43, ~U[2026-04-24 09:01:20Z]] 10:08:57.718 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.721 [debug] QUERY OK source="media_items" db=2.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 09:07:57Z], 43] 10:08:57.723 [debug] QUERY OK source="media_items" db=0.8ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "d00ebac2-2bac-4bbf-b1ad-0667f2ac9205", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, false, false, 43, [], 97, ~U[2026-04-23 09:07:57Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "Try out Proton Mail, the secure email that protects your privacy: https://proton.me/mail/TheLinuxEXP\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:36 Sponsor: Proton Mail\n01:30 Visual Changes\n03:47 Sudo Changes\n05:28 Default app changes\n06:53 Optimized packages\n08:41 Security Center\n11:21 App Center\n12:29 Telemetry\n13:55 No more Google Drive\n14:55 GNOME 50\n22:48 Under The Hood\n23:38 Conclusion\n25:14 Sponsor: Tuxedo Computers\n\n\n#ubuntu #linuxdesktop #linuxdistro", "Ubuntu 26.04: there are some big changes in there!", "4MYxtL0AW2g", 1597, false, "https://www.youtube.com/watch?v=4MYxtL0AW2g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Ubuntu 26.04: there are some big changes in there!.mp4", false, 43, ~U[2026-04-23 09:07:57Z]] 10:08:57.723 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 10:08:57.726 [debug] QUERY OK source="media_items" db=2.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 07:23:04Z], 43] 10:08:57.727 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "ace29a37-8363-4b38-a15b-bfb1bf985777", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, false, false, 43, [], 97, ~U[2026-04-23 07:23:04Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu's audit of the Rust Core Utilities\n02:22 Ubuntu uses snaps to make development easier\n04:07 Intel shuts down more open source efforts\n06:11 Parody website lets you rebuild a license free version of FOSS\n\n\nLinks:\nUbuntu's audit of the Rust Core Utilities\nhttps://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773\n\nUbuntu uses snaps to make development easier\nhttps://ubuntu.com//blog/from-jammy-to-resolute-how-ubuntus-toolchains-have-evolved\n\nIntel shuts down more open source efforts\nhttps://www.phoronix.com/news/Intel-Ends-OSS-Evangelism-Repos\n\nParody website lets you rebuild a license free version of FOSS\nhttps://www.404media.co/this-ai-tool-rips-off-open-source-software-without-violating-copyright/", "Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source", "BHoJYgBFA4c", 618, false, "https://www.youtube.com/watch?v=BHoJYgBFA4c", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042300_Daily Linux News - S03E79 - Ubuntu talks Snaps and Rust Coreutils, Intel shutters more open source.NA", false, 43, ~U[2026-04-23 07:23:04Z]] 10:08:57.728 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.731 [debug] QUERY OK source="media_items" db=2.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-22 09:29:59Z], 43] 10:08:57.732 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "7772b68d-0a95-49b4-949c-f55be8ce2288", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, false, false, 43, [], 98, ~U[2026-04-22 09:29:59Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 More age verification news\n02:54 Firefox talks more about their Smart Window feature\n05:35 Mozilla found 271 flaws using Anthropic Mythos\n\n\nLinks:\n\nMore age verification news\nhttps://9to5linux.com/colorado-age-attestation-bill-may-exclude-open-source-oses-and-apps\nhttps://almalinux.org/blog/2026-04-21-california-age-verification-law/\n\nFirefox talks more about their Smart Window feature\nhttps://www.firefox.com/en-US/smart-window/?view=waitlist\nhttps://support.mozilla.org/en-US/kb/smart-window-models\n\nMozilla found 271 flaws using Anthropic Mythos\nhttps://blog.mozilla.org/en/firefox/ai-security-zero-day-vulnerabilities/", "Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news", "0SzaAJvLL_g", 487, false, "https://www.youtube.com/watch?v=0SzaAJvLL_g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042200_Daily Linux News - S03E78 - Firefox and AI, more age verification (good) news.NA", false, 43, ~U[2026-04-22 09:29:59Z]] 10:08:57.732 [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" = ?) [43] 10:08:57.735 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 08:07:24Z], 43] 10:08:57.736 [debug] QUERY OK source="media_items" db=0.6ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "11811f40-3294-4ed2-b500-79f3372ad8c1", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, false, false, 43, [], 98, ~U[2026-04-21 08:07:24Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 LxQt gets an update\n02:08 Debian elects new project lead\n03:41 New Linux powered console\n05:38 Firefox 150 released\n\n\nLinks:\nLxQt gets an update\nhttps://linuxiac.com/lxqt-2-3-desktop-environment-released-with-better-wayland-support-2/\n\nDebian elects new project lead\nhttps://linuxiac.com/debian-names-a-new-leader-for-the-project/\n\nNew Linux powered console\nhttps://playnix.io/\n\nFirefox 150 released\nhttps://www.omgubuntu.co.uk/2026/04/firefox-150-feature", "Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console", "BQ2_0v3ZS5g", 467, false, "https://www.youtube.com/watch?v=BQ2_0v3ZS5g", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042100_Daily Linux News - S03E77 - New Debian project lead, LXQt update, new Linux console.NA", false, 43, ~U[2026-04-21 08:07:24Z]] 10:08:57.737 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.740 [debug] QUERY OK source="media_items" db=2.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 09:37:37Z], 43] 10:08:57.740 [debug] QUERY OK source="media_items" db=0.5ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "76b8f70e-de35-4ae9-b51f-9f2d9bb2fddd", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, false, false, 43, [], 97, ~U[2026-04-20 09:37:37Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E16 - Work Life balance", "eUETENsa3B4", 1309, false, "https://www.youtube.com/watch?v=eUETENsa3B4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Patroncast S06E16 - Work Life balance.NA", false, 43, ~U[2026-04-20 09:37:37Z]] 10:08:57.741 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.744 [debug] QUERY OK source="media_items" db=2.7ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-20 08:43:41Z], 43] 10:08:57.745 [debug] QUERY OK source="media_items" db=0.7ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "268551e6-b5cf-476f-9eb7-bbfc3cf487fd", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, false, false, 43, [], 97, ~U[2026-04-20 08:43:41Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 FSF weighs in on the OnlyOffice vs EuroOffice debate\n03:03 Fedora 44 delayed again\n04:04 People lose their minds over Mozilla's new mascot\n06:30 Kdenlive makes good progress\n\nLinks:\nFSF weighs in on the OnlyOffice vs EuroOffice debate\nhttps://www.fsf.org/blogs/licensing/agpl-is-not-a-tool-for-taking-freedom-away\n\nFedora 44 delayed again\nhttps://linuxiac.com/fedora-44-faces-second-release-delay-new-target-set-for-april-28/\n\nPeople lose their minds over Mozilla's new mascot\nhttps://itsfoss.com/news/mozillas-firefox-mascot-gender-controversy/\n\nKdenlive makes good progress\nhttps://kdenlive.org/news/2026/state-2026/", "Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy", "Z4f1eHVqj0Y", 538, false, "https://www.youtube.com/watch?v=Z4f1eHVqj0Y", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e042000_Daily Linux News - S03E76 - FSF weighs in on Onlyoffice situation, Mozilla mascot controversy.NA", false, 43, ~U[2026-04-20 08:43:41Z]] 10:08:57.745 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.748 [debug] QUERY OK source="media_items" db=2.7ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 09:14:41Z], 43] 10:08:57.755 [debug] QUERY OK source="media_items" db=6.1ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "f4afc400-c6d6-44ae-960e-beb8c9bb3b2e", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-04-18 09:14:41Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "Take a look at TuxCare's Endless Lifecycle Support Solution: https://tuxcare.com/endless-lifecycle-support/alpine-linux-eol-support/?utm_source=youtube&utm_medium=social&utm_campaign=alpine-linux-els&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n\n00:00 Intro\n00:35 Sponsor: TuxCare\n02:03 Germany outlines their plan to move to open source\n04:08 USA might have nation wide age verification laws\n06:03 EU has an age verification app ready\n07:56 Linux kernel 7.0 released\n10:06 Linux kernel accepts A.I. code\n11:38 Chrome has 47% better performance than Firefox\n13:20 Steam Controller might be arriving soon\n14:26 KDE sprint for remapping gestures, virtual keyboard & more\n15:51 Plasma gets per-monitor virtual desktops\n17:35 Mint won't have a release until the end of the year\n19:56 Proton 11 beta released\n21:10 Mozilla releases Thunderbolt, their own AI client\n23:39 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nGermany outlines their plan to move to open source (link in German)\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\n\n#linux #linuxdesktop #linuxnews", "Germany's moving to Open Source, Age verification gets worse - Linux weekly News", "IkAld223VYI", 1525, false, "https://www.youtube.com/watch?v=IkAld223VYI", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041800_Germany's moving to Open Source, Age verification gets worse - Linux weekly News.mp4", false, 43, ~U[2026-04-18 09:14:41Z]] 10:08:57.756 [debug] QUERY OK source="sources" db=0.5ms idle=11.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" = ?) [43] 10:08:57.759 [debug] QUERY OK source="media_items" db=2.9ms idle=11.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 07:43:59Z], 43] 10:08:57.760 [debug] QUERY OK source="media_items" db=0.8ms idle=13.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "61005697-fc27-42df-b52f-574979ead418", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, false, false, 43, [], 98, ~U[2026-04-17 07:43:59Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mint won't have a release until the end of the year\n03:38 Proton 11 beta released\n04:54 Mozilla releases Thunderbolt, their own AI client\n07:30 EU has an age verification app ready\n\n\nLinks:\nMint won't have a release until the end of the year\nhttps://blog.linuxmint.com/?p=5019\n\nProton 11 beta released\nhttps://github.com/ValveSoftware/Proton/releases/tag/proton-11.0-1-beta1\n\nMozilla releases Thunderbolt, their own AI client\nhttps://www.thunderbolt.io/\nhttps://github.com/thunderbird/thunderbolt\nhttps://github.com/thunderbird/thunderbolt/blob/main/TELEMETRY.md\n\nEU has an age verification app ready\nhttps://www.dw.com/en/eu-chief-urges-bloc-wide-push-on-age-verification-app-to-protect-children-online/a-76788202", "Daily Linux News - S03E75 - Mint slows down, EU age verification app", "ZNMeTQIukQs", 688, false, "https://www.youtube.com/watch?v=ZNMeTQIukQs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041700_Daily Linux News - S03E75 - Mint slows down, EU age verification app.NA", false, 43, ~U[2026-04-17 07:43:59Z]] 10:08:57.760 [debug] QUERY OK source="sources" db=0.4ms idle=11.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" = ?) [43] 10:08:57.763 [debug] QUERY OK source="media_items" db=2.8ms idle=5.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 13:34:22Z], 43] 10:08:57.765 [debug] QUERY OK source="media_items" db=0.9ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "1e833c2c-d254-40d5-bc3e-0d0245c6a45a", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, false, false, 43, [], 97, ~U[2026-04-16 13:34:22Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "Take a look at TuxCare's CVE tracker to identify where you're vulnerable, and how you can fix that! https://tuxcare.com/cve-tracker/?utm_source=youtube&utm_medium=social_organic&utm_campaign=cvetracker_launch&utm_term=the-linux-experiment&utm_content=youtube_announcement\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:24 Sponsor: TuxCare\n01:30 Acrobat Pro & PDF editing\n04:17 Omnifocus & Task Management\n06:42 OneNote, Notion or Obsidian\n11:37 Teams, Slack or Discord\n12:55 Outlook & Email\n14:11 Office 365 or Google Workspace\n16:10 Office Online or Google Docs\n18:40 Windows\n19:37 Conclusion\n20:37 Sponsor: Tuxedo Computers", "OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition)", "4NdlRlie-A8", 1341, false, "https://www.youtube.com/watch?v=4NdlRlie-A8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_OPEN SOURCE alternatives for the MOST POPULAR productivity apps (2026 edition).mp4", false, 43, ~U[2026-04-16 13:34:22Z]] 10:08:57.765 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 10:08:57.768 [debug] QUERY OK source="media_items" db=2.7ms idle=5.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 09:20:42Z], 43] 10:08:57.769 [debug] QUERY OK source="media_items" db=0.8ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "9ae188cd-b952-4e1f-97e0-9562cd5f6e04", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, false, false, 43, [], 97, ~U[2026-04-16 09:20:42Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 intro\n\n00:05 KDE sprint for remapping gestures, virtual keyboard & more\n02:49 Plasma gets per-monitor virtual desktops\n05:12 Zorin OS 18.1 released\n08:05 USA might have nation wide age verification laws\n\n\nLinks:\nKDE sprint for remapping gestures, virtual keyboard & more\nhttps://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint\n\nPlasma gets per-monitor virtual desktops\nhttps://itsfoss.com/news/kde-plasma-per-screen-virtual-desktops/\n\nZorin OS 18.1 released\nhttps://linuxiac.com/zorin-os-18-1-released-with-lite-edition-and-linux-6-17/\n\nUSA might have nation wide age verification laws\nhttps://linuxiac.com/federal-bill-would-bring-os-level-age-verification-to-the-entire-us/", "Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law", "k9VpY6M5Wfs", 664, false, "https://www.youtube.com/watch?v=k9VpY6M5Wfs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041600_Daily Linux News - S03E74 - KDE gains per monitor desktops, new USA wide age verification law.NA", false, 43, ~U[2026-04-16 09:20:42Z]] 10:08:57.770 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.773 [debug] QUERY OK source="media_items" db=2.7ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 08:36:46Z], 43] 10:08:57.774 [debug] QUERY OK source="media_items" db=0.7ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "90ae76a1-af74-4134-9f4e-46617b0e27d2", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, false, false, 43, [], 98, ~U[2026-04-15 08:36:46Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Germany outlines their plan to move to open source\n04:08 Fedora 44 delayed a week\n05:09 Steam Controller might be arriving soon\n06:36 More performance improvements coming to Linux gaming\n\n\n\nLinks:\nGermany outlines their plan to move to open source\nhttps://deutschland-stack.gov.de/gesamtbild/\n\nFedora 44 delayed a week\nhttps://linuxiac.com/fedora-44-release-delayed-as-final-blocker-bugs-remain-open/\nhttps://qa.fedoraproject.org/blockerbugs/milestone/44/final/buglist\n\nSteam Controller might be arriving soon\nhttps://www.techradar.com/gaming/gaming-accessories/valves-steam-controller-launch-looks-imminent-based-on-new-public-records-and-it-might-finally-give-me-the-perfect-excuse-to-build-a-custom-steam-machine\n\nMore performance improvements coming to Linux gaming\nhttps://www.phoronix.com/news/RADV-Merges-Descriptor-Heap", "Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source", "jg32Zpd7KpU", 517, false, "https://www.youtube.com/watch?v=jg32Zpd7KpU", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041500_Daily Linux News - S03E73 - Germany outlines their plan to move to Open Source.NA", false, 43, ~U[2026-04-15 08:36:46Z]] 10:08:57.774 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [43] 10:08:57.777 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-14 09:21:30Z], 43] 10:08:57.778 [debug] QUERY OK source="media_items" db=0.7ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "57a9a08b-908d-4579-b346-4e1f8550c661", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, false, false, 43, [], 98, ~U[2026-04-14 09:21:30Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel accepts A.I. code\n02:46 Open SUSE Tumblewed will use SystemD as the bootloader\n05:50 KDE's graphical app for containers\n07:19 Mozilla mocks Microsoft while doing the same thing they do\n\nLinks:\nLinux kernel accepts A.I. code\nhttps://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst\n\nOpen SUSE Tumblewed will use SystemD as the bootloader\nhttps://linuxiac.com/opensuse-tumbleweed-switches-fresh-installs-to-systemd-boot/\n\nKDE's graphical app for containers\nhttps://linuxiac.com/kontainer-brings-a-native-kde-gui-to-distrobox-container-management/\n\nMozilla mocks Microsoft while doing the same thing they do\nhttps://blog.mozilla.org/en/mozilla/ai/microsoft-copilot-ai-user-choice/", "Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot", "WdokVKRBi38", 663, false, "https://www.youtube.com/watch?v=WdokVKRBi38", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041400_Daily Linux News - S03E72 - Linux kernel accepts AI generated code, OpenSUSE moves to SystemD Boot.NA", false, 43, ~U[2026-04-14 09:21:30Z]] 10:08:57.779 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:08:57.782 [debug] QUERY OK source="media_items" db=3.2ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 08:37:42Z], 43] 10:08:57.783 [debug] QUERY OK source="media_items" db=0.7ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "7e05dedb-21cf-47dc-b517-391e8bdd718a", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, false, false, 43, [], 97, ~U[2026-04-13 08:37:42Z], ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Linux kernel 7.0 released\n03:31 Chrome has 47% better performance than Firefox\n06:29 New GUI for Arch packages\n\n\nLinks:\n\nLinux kernel 7.0 released\nhttps://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features\n\nChrome has 47% better performance than Firefox\nhttps://www.phoronix.com/review/firefox-chrome-2026\n\nNew GUI for Arch packages\nhttps://9to5linux.com/first-look-at-shelly-a-modern-graphical-package-manager-for-arch-linux", "Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox", "XRFXO4HAoYA", 503, false, "https://www.youtube.com/watch?v=XRFXO4HAoYA", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e041300_Daily Linux News - S03E71 - Kernel 7.0 released, Chrome vastly outperforms Firefox.NA", false, 43, ~U[2026-04-13 08:37:42Z]] 10:08:57.784 [debug] QUERY OK source="sources" db=0.4ms idle=6.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z], 43] 10:08:57.788 [debug] QUERY OK source="media_items" db=4.1ms 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 INNER JOIN "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")))) [43] 10:08:57.930 [debug] QUERY OK source="media_items" db=3.3ms idle=2.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")))) [43] 10:08:57.930 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 10:08:57.931 [debug] QUERY OK source="tasks" db=0.2ms idle=4.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300740, 43, ~U[2026-04-30 15:08:57Z], ~U[2026-04-30 15:08:57Z]] 10:08:57.932 [info] {"args":{"id":43},"id":300652,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":26247835,"event":"job:stop","queue_time":711692,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:09:00.463 [info] GET /media/423fca10-70ec-433c-a7f0-f0df1ec0aad6/stream 10:09:00.463 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "423fca10-70ec-433c-a7f0-f0df1ec0aad6"} Pipelines: [:maybe_basic_auth] 10:09:00.465 [debug] QUERY OK source="media_items" db=1.0ms idle=927.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" = ?) ["423fca10-70ec-433c-a7f0-f0df1ec0aad6"] 10:09:00.465 [debug] Invalid range request for media item: 423fca10-70ec-433c-a7f0-f0df1ec0aad6 - serving full file 10:09:00.465 [info] Sent 200 in 1ms 10:09:00.910 [info] {"source":"oban","duration":279,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:09:05.406 [info] GET /media/b03d3388-814a-4bf3-84c3-afc9f37d20b6/stream 10:09:05.406 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "b03d3388-814a-4bf3-84c3-afc9f37d20b6"} Pipelines: [:maybe_basic_auth] 10:09:05.407 [debug] QUERY OK source="media_items" db=0.7ms idle=1647.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" = ?) ["b03d3388-814a-4bf3-84c3-afc9f37d20b6"] 10:09:05.407 [debug] Invalid range request for media item: b03d3388-814a-4bf3-84c3-afc9f37d20b6 - serving full file 10:09:05.407 [info] Sent 200 in 1ms 10:09:06.725 [info] {"source":"oban","duration":3215,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:10.035 [info] GET /sources/38/media/1803892/force_download 10:09:10.035 [debug] QUERY OK source="settings" db=0.1ms idle=1134.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:10.036 [debug] QUERY OK source="settings" db=0.1ms idle=1134.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:10.036 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:10.036 [error] #PID<0.191072.0> running PinchflatWeb.Endpoint (connection #PID<0.191061.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/38/media/1803892/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/38/media/1803892/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/1803892/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191072.0>, params: %{}, path_info: ["sources", "38", "media", "1803892", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/38/media/1803892/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsq_mUuMo1pPv8ASI3C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/1803892/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/38/media/1803892/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/38/media/1803892/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191072.0>, params: %{}, path_info: ["sources", "38", "media", "1803892", "force_download"], path_ (truncated) 10:09:13.298 [info] GET /sources/22/media/894102/force_download 10:09:13.299 [debug] QUERY OK source="settings" db=0.1ms idle=1397.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.299 [debug] QUERY OK source="settings" db=0.0ms idle=1398.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.299 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:13.299 [error] #PID<0.191075.0> running PinchflatWeb.Endpoint (connection #PID<0.191061.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/894102/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/22/media/894102/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/894102/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191075.0>, params: %{}, path_info: ["sources", "22", "media", "894102", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/894102/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsq_yeu0cyw9KkASI4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/894102/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/894102/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/894102/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191075.0>, params: %{}, path_info: ["sources", "22", "media", "894102", "force_download"], path_params: % (truncated) 10:09:18.298 [info] GET /sources/45/media/2045180/force_download 10:09:18.299 [debug] QUERY OK source="settings" db=0.1ms idle=1397.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 [] 10:09:18.299 [debug] QUERY OK source="settings" db=0.0ms idle=1397.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:18.299 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:18.299 [error] #PID<0.191076.0> running PinchflatWeb.Endpoint (connection #PID<0.191061.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/2045180/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/45/media/2045180/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2045180/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191076.0>, params: %{}, path_info: ["sources", "45", "media", "2045180", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/2045180/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrAFG0g-OgD-sASI5C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2045180/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/2045180/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/2045180/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35834}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191076.0>, params: %{}, path_info: ["sources", "45", "media", "2045180", "force_download"], path_ (truncated) 10:09:23.304 [info] GET /sources/46/media/2377781/force_download 10:09:23.304 [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 [] 10:09:23.304 [debug] QUERY OK source="settings" db=0.0ms idle=1403.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 [] 10:09:23.304 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:23.305 [error] #PID<0.191078.0> running PinchflatWeb.Endpoint (connection #PID<0.191077.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/media/2377781/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/46/media/2377781/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2377781/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191078.0>, params: %{}, path_info: ["sources", "46", "media", "2377781", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/media/2377781/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrAXwQRksLC-kAUd8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2377781/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/46/media/2377781/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/media/2377781/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191078.0>, params: %{}, path_info: ["sources", "46", "media", "2377781", "force_download"], path_ (truncated) 10:09:28.306 [info] GET /sources/27/media/1360805/force_download 10:09:28.306 [debug] QUERY OK source="settings" db=0.1ms idle=1405.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:28.306 [debug] QUERY OK source="settings" db=0.0ms idle=1405.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 [] 10:09:28.306 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:28.307 [error] #PID<0.191079.0> running PinchflatWeb.Endpoint (connection #PID<0.191077.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/27/media/1360805/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/27/media/1360805/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1360805/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191079.0>, params: %{}, path_info: ["sources", "27", "media", "1360805", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/27/media/1360805/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrAqYycY-JQloAUd9B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1360805/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/27/media/1360805/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/27/media/1360805/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191079.0>, params: %{}, path_info: ["sources", "27", "media", "1360805", "force_download"], path_ (truncated) 10:09:33.307 [info] GET /sources/17/media/12960/force_download 10:09:33.307 [debug] QUERY OK source="settings" db=0.1ms idle=1406.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:33.308 [debug] QUERY OK source="settings" db=0.0ms idle=1406.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:33.308 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:09:33.308 [error] #PID<0.191080.0> running PinchflatWeb.Endpoint (connection #PID<0.191077.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/17/media/12960/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/17/media/12960/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12960/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191080.0>, params: %{}, path_info: ["sources", "17", "media", "12960", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/17/media/12960/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrA9BN9p-LOwEAUd-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.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12960/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/17/media/12960/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191077.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/17/media/12960/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 58236}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYMHpNaGFpOTFEUG1za21jREdlX19zdVJy.OagkvuhhibamwqApmSUa4Nnzomb0GNJqrBikfoell6A" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191080.0>, params: %{}, path_info: ["sources", "17", "media", "12960", "force_download"], path_params: %{}, (truncated) 10:09:36.729 [info] {"source":"oban","duration":3520,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:00.911 [info] {"source":"oban","duration":149,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:10:06.733 [info] {"source":"oban","duration":3503,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:15.097 [info] GET /sources/17/media/12954/edit 10:10:15.097 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12954", "source_id" => "17"} Pipelines: [:browser] 10:10:15.098 [debug] QUERY OK source="media_items" db=0.1ms idle=1196.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" = ?) [12954] 10:10:15.098 [debug] QUERY OK source="settings" db=0.0ms idle=1196.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:15.098 [debug] QUERY OK source="settings" db=0.0ms idle=1197.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:15.099 [debug] QUERY OK source="settings" db=0.1ms idle=215.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 [] 10:10:15.099 [info] Sent 200 in 1ms 10:10:19.867 [info] GET /sources/46/media/2377781 10:10:19.867 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2377781", "source_id" => "46"} Pipelines: [:browser] 10:10:19.867 [debug] QUERY OK source="media_items" db=0.2ms idle=978.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" = ?) [2377781] 10:10:19.868 [debug] QUERY OK source="tasks" db=0.1ms idle=967.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" [2377781] 10:10:19.868 [debug] QUERY OK source="sources" db=0.2ms idle=967.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" = ?) [46] 10:10:19.868 [debug] QUERY OK source="settings" db=0.0ms idle=967.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:19.868 [debug] QUERY OK source="settings" db=0.1ms idle=967.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:19.869 [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 [] 10:10:19.869 [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] 10:10:19.870 [info] Sent 200 in 3ms 10:10:24.873 [info] GET /sources/38/media/1911765 10:10:24.873 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1911765", "source_id" => "38"} Pipelines: [:browser] 10:10:24.874 [debug] QUERY OK source="media_items" db=0.2ms idle=1972.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" = ?) [1911765] 10:10:24.874 [debug] QUERY OK source="tasks" db=0.0ms idle=1973.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" [1911765] 10:10:24.874 [debug] QUERY OK source="sources" db=0.1ms idle=1973.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" = ?) [38] 10:10:24.874 [debug] QUERY OK source="settings" db=0.0ms idle=1973.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:24.875 [debug] QUERY OK source="settings" db=0.0ms idle=977.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:24.875 [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 [] 10:10:24.875 [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] 10:10:24.876 [info] Sent 200 in 2ms 10:10:29.869 [info] GET /sources/55/media/1797429 10:10:29.869 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797429", "source_id" => "55"} Pipelines: [:browser] 10:10:29.870 [debug] QUERY OK source="media_items" db=0.1ms idle=1968.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" = ?) [1797429] 10:10:29.870 [debug] QUERY OK source="tasks" db=0.0ms idle=1969.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" [1797429] 10:10:29.870 [debug] QUERY OK source="sources" db=0.2ms idle=1969.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" = ?) [55] 10:10:29.871 [debug] QUERY OK source="settings" db=0.1ms idle=1968.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 [] 10:10:29.871 [debug] QUERY OK source="settings" db=0.1ms idle=967.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:29.871 [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 [] 10:10:29.872 [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] 10:10:29.872 [info] Sent 200 in 3ms 10:10:35.641 [info] GET /sources/52/media/1301398 10:10:35.641 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1301398", "source_id" => "52"} Pipelines: [:browser] 10:10:35.642 [debug] QUERY OK source="media_items" db=0.1ms idle=740.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" = ?) [1301398] 10:10:35.642 [debug] QUERY OK source="sources" db=0.2ms idle=741.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" = ?) [52] 10:10:35.645 [debug] QUERY OK source="tasks" db=3.1ms idle=741.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" [1301398] 10:10:35.669 [debug] QUERY OK source="oban_jobs" db=19.1ms idle=749.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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [277935, 277996, 278030, 278044, 278058, 278071, 278084, 278220, 278242, 278255, 278283, 278304, 278318, 278331, 278344, 278358, 278371, 278389, 278404, 278417, 278430, 278444, 278457, 278473, 278489, 278502, 278515, 278529, 278542, 278562, 278577, 278591, 278604, 278617, 278631, 278647, 278662, 278676, 278689, 278702, 278716, 278732, 278748, 278762, 278775, 278788, 278802, 278821, 278836, 278850, ...] 10:10:35.685 [debug] QUERY OK source="settings" db=0.1ms idle=772.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:35.685 [debug] QUERY OK source="settings" db=0.1ms idle=43.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 [] 10:10:35.685 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:10:35.686 [debug] QUERY OK source="media_profiles" db=0.0ms idle=40.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] 10:10:35.772 [info] Sent 200 in 130ms 10:10:36.737 [info] {"source":"oban","duration":2998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:39.949 [info] GET /sources/27/media/829979 10:10:39.949 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "829979", "source_id" => "27"} Pipelines: [:browser] 10:10:39.949 [debug] QUERY OK source="media_items" db=0.2ms idle=1048.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" = ?) [829979] 10:10:39.949 [debug] QUERY OK source="tasks" db=0.1ms idle=1048.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" [829979] 10:10:39.950 [debug] QUERY OK source="sources" db=0.1ms idle=1033.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" = ?) [27] 10:10:39.950 [debug] QUERY OK source="settings" db=0.0ms idle=49.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 [] 10:10:39.950 [debug] QUERY OK source="settings" db=0.1ms idle=32.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:39.951 [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 [] 10:10:39.951 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:10:39.952 [info] Sent 200 in 3ms 10:10:44.589 [info] GET /media_profiles/3 10:10:44.590 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"delete_files" => "true", "id" => "3"} Pipelines: [:browser] 10:10:44.590 [debug] QUERY OK source="media_profiles" db=0.2ms idle=689.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" = ?) [3] 10:10:44.591 [debug] QUERY OK source="sources" db=0.6ms idle=689.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" [3] 10:10:44.591 [debug] QUERY OK source="settings" db=0.0ms idle=690.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 [] 10:10:44.591 [debug] QUERY OK source="settings" db=0.0ms idle=690.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:44.592 [debug] QUERY OK source="settings" db=0.0ms idle=668.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 [] 10:10:44.592 [info] Sent 200 in 2ms 10:10:49.478 [info] GET /sources/46/media/2312061 10:10:49.478 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2312061", "source_id" => "46"} Pipelines: [:browser] 10:10:49.478 [debug] QUERY OK source="media_items" db=0.1ms idle=1577.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" = ?) [2312061] 10:10:49.479 [debug] QUERY OK source="tasks" db=0.1ms idle=1577.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" [2312061] 10:10:49.479 [debug] QUERY OK source="sources" db=0.1ms idle=1577.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" = ?) [46] 10:10:49.479 [debug] QUERY OK source="settings" db=0.0ms idle=1550.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:49.479 [debug] QUERY OK source="settings" db=0.1ms idle=550.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:49.479 [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 [] 10:10:49.480 [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] 10:10:49.481 [info] Sent 200 in 2ms 10:10:54.477 [info] GET /sources/52/media/1301396 10:10:54.477 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1301396", "source_id" => "52"} Pipelines: [:browser] 10:10:54.477 [debug] QUERY OK source="media_items" db=0.1ms idle=1576.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" = ?) [1301396] 10:10:54.478 [debug] QUERY OK source="sources" db=0.1ms idle=1577.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" = ?) [52] 10:10:54.478 [debug] QUERY OK source="tasks" db=0.7ms idle=1576.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" [1301396] 10:10:54.479 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1544.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" = ?) [273661] 10:10:54.479 [debug] QUERY OK source="settings" db=0.0ms idle=543.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:54.479 [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 [] 10:10:54.479 [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 [] 10:10:54.480 [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] 10:10:54.481 [info] Sent 200 in 3ms 10:10:59.480 [info] GET /sources/55/media/1797430 10:10:59.480 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1797430", "source_id" => "55"} Pipelines: [:browser] 10:10:59.481 [debug] QUERY OK source="media_items" db=0.1ms idle=1579.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" = ?) [1797430] 10:10:59.481 [debug] QUERY OK source="tasks" db=0.1ms idle=1580.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" [1797430] 10:10:59.481 [debug] QUERY OK source="sources" db=0.1ms idle=1580.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" = ?) [55] 10:10:59.481 [debug] QUERY OK source="settings" db=0.0ms idle=1542.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:59.482 [debug] QUERY OK source="settings" db=0.1ms idle=541.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 [] 10:10:59.482 [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 [] 10:10:59.482 [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] 10:10:59.483 [info] Sent 200 in 3ms 10:11:00.912 [info] {"source":"oban","duration":164,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:11:06.740 [info] {"source":"oban","duration":2427,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:36.744 [info] {"source":"oban","duration":3803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:49.520 [info] GET /sources/22/media/352748/edit 10:11:49.520 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "352748", "source_id" => "22"} Pipelines: [:browser] 10:11:49.520 [debug] QUERY OK source="media_items" db=0.2ms idle=1619.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" = ?) [352748] 10:11:49.521 [debug] QUERY OK source="settings" db=0.0ms idle=1504.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:11:49.521 [debug] QUERY OK source="settings" db=0.0ms idle=620.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:11:49.521 [debug] QUERY OK source="settings" db=0.0ms idle=620.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 [] 10:11:49.522 [info] Sent 200 in 1ms 10:11:53.671 [info] GET /sources/17/media/12960/edit 10:11:53.671 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "12960", "source_id" => "17"} Pipelines: [:browser] 10:11:53.672 [debug] QUERY OK source="media_items" db=0.1ms idle=770.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" = ?) [12960] 10:11:53.672 [debug] QUERY OK source="settings" db=0.0ms idle=771.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 [] 10:11:53.672 [debug] QUERY OK source="settings" db=0.0ms idle=771.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:11:53.672 [debug] QUERY OK source="settings" db=0.0ms idle=771.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:11:53.673 [info] Sent 200 in 1ms 10:11:58.384 [info] GET /sources/45/media/1854320/edit 10:11:58.384 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1854320", "source_id" => "45"} Pipelines: [:browser] 10:11:58.385 [debug] QUERY OK source="media_items" db=0.1ms idle=1484.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" = ?) [1854320] 10:11:58.385 [debug] QUERY OK source="settings" db=0.1ms idle=1484.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 [] 10:11:58.385 [debug] QUERY OK source="settings" db=0.0ms idle=1484.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:11:58.386 [debug] QUERY OK source="settings" db=0.0ms idle=1354.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 [] 10:11:58.386 [info] Sent 200 in 2ms 10:12:00.913 [info] {"source":"oban","duration":280,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:12:03.049 [info] {"args":{"id":37},"id":300653,"meta":{},"system_time":1777561923049274077,"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"]} 10:12:03.050 [debug] QUERY OK source="sources" db=0.7ms idle=1148.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" = ?) [37] 10:12:03.050 [debug] QUERY OK source="settings" db=0.3ms idle=1010.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.053 [debug] QUERY OK source="media_items" db=2.2ms idle=150.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")))) [37] 10:12:03.057 [debug] QUERY OK source="media_items" db=4.4ms idle=10.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 10:12:03.058 [debug] QUERY OK source="media_profiles" db=0.0ms idle=8.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] 10:12:03.058 [debug] QUERY OK source="settings" db=0.0ms idle=7.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.058 [debug] QUERY OK source="settings" db=0.0ms idle=7.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.061 [debug] QUERY OK source="media_items" db=1.9ms 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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [37] 10:12:03.062 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:12:03.063 [debug] Current batch of media processed. Will check again in 1000ms 10:12:03.063 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.063 [debug] QUERY OK source="settings" db=0.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.063 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.063 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/1e/a7/1ea75aa3a2e81cf6ad6c81e9b16f39afaea759c711220ff983e1e373a03f50e6.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/0a/d3/0ad382ca4b3b7ce27cfb97347dffa5f88aee3162259f9788529cb45a7b68b5d1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:12:03.457 [info] GET /sources/38/media/2014095/edit 10:12:03.457 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2014095", "source_id" => "38"} Pipelines: [:browser] 10:12:03.458 [debug] QUERY OK source="media_items" db=0.1ms idle=399.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" = ?) [2014095] 10:12:03.458 [debug] QUERY OK source="settings" db=0.1ms idle=396.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.458 [debug] QUERY OK source="settings" db=0.0ms idle=395.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 [] 10:12:03.458 [debug] QUERY OK source="settings" db=0.0ms idle=395.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:03.459 [info] Sent 200 in 1ms 10:12:04.064 [debug] Current batch of media processed. Will check again in 1000ms 10:12:05.065 [debug] Current batch of media processed. Will check again in 1000ms 10:12:06.065 [debug] Current batch of media processed. Will check again in 1000ms 10:12:06.749 [info] {"source":"oban","duration":3308,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:07.067 [debug] Current batch of media processed. Will check again in 1000ms 10:12:08.068 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "duration" => 629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", "id" => "b13m-iuu4XU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b13m-iuu4XU", "playlist_index" => 1, "timestamp" => 1777381269, "title" => "Github are you joking?", "upload_date" => "20260428"} 10:12:08.069 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1167.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 (?)) [37] 10:12:08.069 [debug] QUERY OK source="sources" db=0.1ms idle=1168.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" = ?) [37] 10:12:08.072 [debug] QUERY OK source="media_items" db=2.2ms idle=1021.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 10:12:08.073 [debug] QUERY OK source="media_items" db=0.7ms idle=171.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "ef277d03-7dd8-49d4-908a-63c20c3bca38", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 15:12:08Z], ~U[2026-04-30 15:12:08Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 10:12:08.073 [debug] QUERY OK source="sources" db=0.1ms idle=23.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" = ?) [37] 10:12:08.073 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:08.074 [debug] QUERY OK source="media_items" db=0.1ms 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 [2827057] 10:12:08.074 [debug] Current batch of media processed. Will check again in 1000ms 10:12:08.403 [info] GET /sources/22/media/439966/edit 10:12:08.403 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "439966", "source_id" => "22"} Pipelines: [:browser] 10:12:08.404 [debug] QUERY OK source="media_items" db=0.5ms idle=331.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" = ?) [439966] 10:12:08.404 [debug] QUERY OK source="settings" db=0.1ms idle=331.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 [] 10:12:08.404 [debug] QUERY OK source="settings" db=0.1ms idle=331.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 [] 10:12:08.405 [debug] QUERY OK source="settings" db=0.0ms idle=331.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 [] 10:12:08.405 [info] Sent 200 in 2ms 10:12:09.074 [debug] Current batch of media processed. Will check again in 1000ms 10:12:10.076 [debug] Current batch of media processed. Will check again in 1000ms 10:12:11.077 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "duration" => 543, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", "id" => "ZANFhJ9HYsM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "playlist_index" => 2, "timestamp" => 1777032065, "title" => "RollerCoaster Tycoon Optimizations are Insane", "upload_date" => "20260424"} 10:12:11.077 [debug] QUERY OK source="sources" db=0.2ms idle=1176.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 (?)) [37] 10:12:11.077 [debug] QUERY OK source="sources" db=0.1ms idle=1176.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" = ?) [37] 10:12:11.080 [debug] QUERY OK source="media_items" db=2.3ms idle=1177.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 10:12:11.081 [debug] QUERY OK source="media_items" db=0.6ms idle=1028.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ce3d737d-2cdf-40a7-9cdb-2c5d22d65a18", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 15:12:11Z], ~U[2026-04-30 15:12:11Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 10:12:11.081 [debug] QUERY OK source="sources" db=0.1ms idle=28.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" = ?) [37] 10:12:11.082 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.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] 10:12:11.082 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2795669] 10:12:11.082 [debug] Current batch of media processed. Will check again in 1000ms 10:12:12.083 [debug] Current batch of media processed. Will check again in 1000ms 10:12:13.085 [debug] Current batch of media processed. Will check again in 1000ms 10:12:14.086 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "duration" => 586, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", "id" => "rAREqdtUN48", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rAREqdtUN48", "playlist_index" => 3, "timestamp" => 1776799997, "title" => "We are near peak hype", "upload_date" => "20260421"} 10:12:14.086 [debug] QUERY OK source="sources" db=0.2ms idle=1185.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 (?)) [37] 10:12:14.086 [debug] QUERY OK source="sources" db=0.2ms idle=1185.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" = ?) [37] 10:12:14.089 [debug] QUERY OK source="media_items" db=2.3ms idle=1186.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 10:12:14.090 [debug] QUERY OK source="media_items" db=0.7ms idle=1034.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "0cc21dbb-3ab0-4504-8246-754f78c74070", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 15:12:14Z], ~U[2026-04-30 15:12:14Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 10:12:14.090 [debug] QUERY OK source="sources" db=0.1ms idle=33.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" = ?) [37] 10:12:14.091 [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] 10:12:14.091 [debug] QUERY OK source="media_items" db=0.1ms 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 [2778175] 10:12:14.091 [debug] Current batch of media processed. Will check again in 1000ms 10:12:15.092 [debug] Current batch of media processed. Will check again in 1000ms 10:12:16.093 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2786, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", "id" => "6szQxMGX5JI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6szQxMGX5JI", "playlist_index" => 4, "timestamp" => 1776603620, "title" => "The Mythos Situation | TheStandup", "upload_date" => "20260419"} 10:12:16.093 [debug] QUERY OK source="sources" db=0.2ms idle=192.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 (?)) [37] 10:12:16.094 [debug] QUERY OK source="sources" db=0.1ms idle=192.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" = ?) [37] 10:12:16.096 [debug] QUERY OK source="media_items" db=2.2ms idle=193.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 10:12:16.097 [debug] QUERY OK source="media_items" db=0.8ms idle=195.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "735adfa1-7934-4afe-b7f1-c6965c8d5145", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 15:12:16Z], ~U[2026-04-30 15:12:16Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 10:12:16.097 [debug] QUERY OK source="sources" db=0.1ms idle=37.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" = ?) [37] 10:12:16.098 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:16.098 [debug] QUERY OK source="media_items" db=0.1ms 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 [2760601] 10:12:16.098 [debug] Current batch of media processed. Will check again in 1000ms 10:12:17.099 [debug] Current batch of media processed. Will check again in 1000ms 10:12:18.100 [debug] Current batch of media processed. Will check again in 1000ms 10:12:19.101 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 736, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", "id" => "Oq5e_8zvick", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Oq5e_8zvick", "playlist_index" => 5, "timestamp" => 1776428220, "title" => "It's all fake", "upload_date" => "20260417"} 10:12:19.101 [debug] QUERY OK source="sources" db=0.1ms idle=1200.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 (?)) [37] 10:12:19.101 [debug] QUERY OK source="sources" db=0.1ms idle=1200.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" = ?) [37] 10:12:19.104 [debug] QUERY OK source="media_items" db=2.2ms idle=1200.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 10:12:19.105 [debug] QUERY OK source="media_items" db=0.8ms idle=1040.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "47f92d4c-4332-4add-8aad-06ad2babace2", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 15:12:19Z], ~U[2026-04-30 15:12:19Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 10:12:19.105 [debug] QUERY OK source="sources" db=0.1ms idle=40.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" = ?) [37] 10:12:19.106 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:19.106 [debug] QUERY OK source="media_items" db=0.1ms 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 [2744497] 10:12:19.106 [debug] Current batch of media processed. Will check again in 1000ms 10:12:19.382 [info] GET /sources/46/media/2377781/edit 10:12:19.382 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2377781", "source_id" => "46"} Pipelines: [:browser] 10:12:19.383 [debug] QUERY OK source="media_items" db=0.5ms idle=278.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" = ?) [2377781] 10:12:19.384 [debug] QUERY OK source="settings" db=0.0ms idle=278.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:19.384 [debug] QUERY OK source="settings" db=0.0ms idle=278.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 [] 10:12:19.384 [debug] QUERY OK source="settings" db=0.0ms idle=278.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 [] 10:12:19.385 [info] Sent 200 in 2ms 10:12:19.868 [info] GET /sources/52/media/1301393/edit 10:12:19.868 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1301393", "source_id" => "52"} Pipelines: [:browser] 10:12:19.868 [debug] QUERY OK source="media_items" db=0.2ms idle=762.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" = ?) [1301393] 10:12:19.869 [debug] QUERY OK source="settings" db=0.1ms idle=485.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 [] 10:12:19.869 [debug] QUERY OK source="settings" db=0.0ms idle=485.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 [] 10:12:19.869 [debug] QUERY OK source="settings" db=0.1ms idle=485.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 [] 10:12:19.870 [info] Sent 200 in 2ms 10:12:20.107 [debug] Current batch of media processed. Will check again in 1000ms 10:12:21.108 [debug] Current batch of media processed. Will check again in 1000ms 10:12:22.075 [info] {"args":{"id":1227403},"id":279588,"meta":{},"system_time":1777561942075642802,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:12:22.076 [debug] QUERY OK source="media_items" db=0.2ms idle=1174.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" = ?) [1227403] 10:12:22.076 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:12:22.076 [debug] QUERY OK source="sources" db=0.1ms idle=1175.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" = ?) [32] 10:12:22.076 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1009.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] 10:12:22.077 [debug] QUERY OK source="media_items" db=0.2ms 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 [1227403] 10:12:22.078 [debug] QUERY OK source="media_metadata" db=0.0ms 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" = ?) [1227403] 10:12:22.078 [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] 10:12:22.078 [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 [] 10:12:22.079 [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 [] 10:12:22.079 [debug] Running yt-dlp command for action: get_downloadable_status 10:12:22.080 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:12:22.080 [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 [] 10:12:22.080 [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 [] 10:12:22.080 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uytWExZzMW0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/95/67/95674d6280123c7c4fae922b1b3b1dfa73fe2d68e1de64c27a5d8764861fad6b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:12:22.109 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 785, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", "id" => "c6yN06GKRNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c6yN06GKRNQ", "playlist_index" => 6, "timestamp" => 1776255366, "title" => "Linus Lays down the Law", "upload_date" => "20260415"} 10:12:22.109 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 10:12:22.109 [debug] QUERY OK source="sources" db=0.1ms idle=30.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" = ?) [37] 10:12:22.112 [debug] QUERY OK source="media_items" db=2.3ms idle=29.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 10:12:22.113 [debug] QUERY OK source="media_items" db=0.6ms idle=31.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "cf178a1b-23ed-45f1-85cc-18fe2a2f010c", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 15:12:22Z], ~U[2026-04-30 15:12:22Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 10:12:22.113 [debug] QUERY OK source="sources" db=0.1ms idle=32.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" = ?) [37] 10:12:22.113 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:12:22.114 [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 [2735456] 10:12:22.114 [debug] Current batch of media processed. Will check again in 1000ms 10:12:23.115 [debug] Current batch of media processed. Will check again in 1000ms 10:12:23.768 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uytWExZzMW0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/95/67/95674d6280123c7c4fae922b1b3b1dfa73fe2d68e1de64c27a5d8764861fad6b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] uytWExZzMW0: Join this channel to get access to members-only content like this video, and other exclusive perks. 10:12:23.769 [error] yt-dlp download error for media item #1227403: "ERROR: [youtube] uytWExZzMW0: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 10:12:23.769 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1227403},"id":279588,"meta":{},"state":"discard","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1693555,"event":"job:exception","queue_time":170625,"attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:12:24.115 [debug] Current batch of media processed. Will check again in 1000ms 10:12:25.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 611, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", "id" => "zMpn9ICagdE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zMpn9ICagdE", "playlist_index" => 7, "timestamp" => 1776083174, "title" => "Vim Has A 0-Day????", "upload_date" => "20260413"} 10:12:25.118 [debug] QUERY OK source="sources" db=0.2ms idle=1216.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 (?)) [37] 10:12:25.118 [debug] QUERY OK source="sources" db=0.1ms idle=1045.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" = ?) [37] 10:12:25.120 [debug] QUERY OK source="media_items" db=2.2ms idle=217.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 10:12:25.121 [debug] QUERY OK source="media_items" db=0.7ms idle=219.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "77ac6139-092a-4435-be89-7952fe355131", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 15:12:25Z], ~U[2026-04-30 15:12:25Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 10:12:25.122 [debug] QUERY OK source="sources" db=0.1ms idle=47.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" = ?) [37] 10:12:25.122 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:25.122 [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 [2719999] 10:12:25.123 [debug] Current batch of media processed. Will check again in 1000ms 10:12:25.879 [info] GET /media_profiles/new 10:12:25.880 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{"template_id" => "3"} Pipelines: [:browser] 10:12:25.880 [debug] QUERY OK source="media_profiles" db=0.4ms idle=759.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" = ?) [3] 10:12:25.881 [debug] QUERY OK source="settings" db=0.0ms idle=759.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:25.881 [debug] QUERY OK source="settings" db=0.0ms idle=758.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:25.881 [debug] QUERY OK source="settings" db=0.0ms idle=758.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:25.881 [debug] QUERY OK source="settings" db=0.0ms idle=758.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:25.882 [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 [] 10:12:25.883 [info] Sent 200 in 3ms 10:12:26.124 [debug] Current batch of media processed. Will check again in 1000ms 10:12:27.125 [debug] Current batch of media processed. Will check again in 1000ms 10:12:28.126 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2441, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", "id" => "CCBe1shjGOw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CCBe1shjGOw", "playlist_index" => 8, "timestamp" => 1775998816, "title" => "Trash Made a Black Mirror App | The Standup", "upload_date" => "20260412"} 10:12:28.126 [debug] QUERY OK source="sources" db=0.3ms idle=1225.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 (?)) [37] 10:12:28.127 [debug] QUERY OK source="sources" db=0.1ms idle=1226.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" = ?) [37] 10:12:28.129 [debug] QUERY OK source="media_items" db=2.2ms idle=1226.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 10:12:28.131 [debug] QUERY OK source="media_items" db=0.9ms idle=1052.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "48990be0-88d7-4a2a-8da3-3bed62876ea2", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 15:12:28Z], ~U[2026-04-30 15:12:28Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 10:12:28.131 [debug] QUERY OK source="sources" db=0.1ms idle=52.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" = ?) [37] 10:12:28.131 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:28.132 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2712431] 10:12:28.132 [debug] Current batch of media processed. Will check again in 1000ms 10:12:29.133 [debug] Current batch of media processed. Will check again in 1000ms 10:12:30.134 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 199, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", "id" => "alK8hgHgxd4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=alK8hgHgxd4", "playlist_index" => 9, "timestamp" => 1775921010, "title" => "I made a music video and I'm not sorry", "upload_date" => "20260411"} 10:12:30.134 [debug] QUERY OK source="sources" db=0.1ms idle=233.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 (?)) [37] 10:12:30.134 [debug] QUERY OK source="sources" db=0.1ms idle=233.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" = ?) [37] 10:12:30.137 [debug] QUERY OK source="media_items" db=2.4ms idle=233.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 10:12:30.138 [debug] QUERY OK source="media_items" db=0.8ms idle=236.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "83f33032-0fb3-48df-8731-030ae12ed8ed", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 15:12:30Z], ~U[2026-04-30 15:12:30Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 10:12:30.138 [debug] QUERY OK source="sources" db=0.1ms idle=56.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" = ?) [37] 10:12:30.139 [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] 10:12:30.139 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2705803] 10:12:30.139 [debug] Current batch of media processed. Will check again in 1000ms 10:12:30.781 [info] GET /sources/46/media/2312061/edit 10:12:30.781 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2312061", "source_id" => "46"} Pipelines: [:browser] 10:12:30.782 [debug] QUERY OK source="media_items" db=0.4ms idle=644.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" = ?) [2312061] 10:12:30.782 [debug] QUERY OK source="settings" db=0.0ms idle=644.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:30.782 [debug] QUERY OK source="settings" db=0.0ms idle=643.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:30.783 [debug] QUERY OK source="settings" db=0.1ms idle=643.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:30.784 [info] Sent 200 in 2ms 10:12:31.140 [debug] Current batch of media processed. Will check again in 1000ms 10:12:32.141 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 418, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", "id" => "L29q2LRiMRc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L29q2LRiMRc", "playlist_index" => 10, "timestamp" => 1775837734, "title" => "No way this actually works", "upload_date" => "20260410"} 10:12:32.142 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=241.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 (?)) [37] 10:12:32.143 [debug] QUERY OK source="sources" db=0.1ms idle=241.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" = ?) [37] 10:12:32.145 [debug] QUERY OK source="media_items" db=2.3ms idle=241.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 10:12:32.148 [debug] QUERY OK source="media_items" db=2.4ms idle=244.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "604dff30-e05c-4e2b-bc2e-764cd2887038", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 15:12:32Z], ~U[2026-04-30 15:12:32Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 10:12:32.148 [debug] QUERY OK source="sources" db=0.2ms idle=63.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" = ?) [37] 10:12:32.148 [debug] QUERY OK source="media_profiles" db=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] 10:12:32.149 [debug] QUERY OK source="media_items" db=0.1ms 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 [2697826] 10:12:32.149 [debug] Current batch of media processed. Will check again in 1000ms 10:12:33.150 [debug] Current batch of media processed. Will check again in 1000ms 10:12:34.151 [debug] Current batch of media processed. Will check again in 1000ms 10:12:35.152 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 626, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", "id" => "XRgGFQ0EgM0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "playlist_index" => 11, "timestamp" => 1775622398, "title" => "Is Mythos too Dangerous?", "upload_date" => "20260408"} 10:12:35.152 [debug] QUERY OK source="sources" db=0.2ms idle=1251.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 (?)) [37] 10:12:35.153 [debug] QUERY OK source="sources" db=0.1ms idle=1252.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" = ?) [37] 10:12:35.155 [debug] QUERY OK source="media_items" db=2.2ms idle=1252.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 10:12:35.156 [debug] QUERY OK source="media_items" db=0.8ms idle=1068.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "2f1a1912-2a55-40f2-81c9-6bad3e057daf", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 15:12:35Z], ~U[2026-04-30 15:12:35Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 10:12:35.157 [debug] QUERY OK source="sources" db=0.1ms idle=67.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" = ?) [37] 10:12:35.157 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:35.157 [debug] QUERY OK source="media_items" db=0.1ms 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 [2677584] 10:12:35.157 [debug] Current batch of media processed. Will check again in 1000ms 10:12:35.784 [info] GET /sources/46/media/2358266/edit 10:12:35.784 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2358266", "source_id" => "46"} Pipelines: [:browser] 10:12:35.785 [debug] QUERY OK source="media_items" db=0.5ms idle=629.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" = ?) [2358266] 10:12:35.785 [debug] QUERY OK source="settings" db=0.0ms idle=628.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:35.785 [debug] QUERY OK source="settings" db=0.0ms idle=628.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:35.786 [debug] QUERY OK source="settings" db=0.0ms idle=628.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:35.786 [info] Sent 200 in 2ms 10:12:36.159 [debug] Current batch of media processed. Will check again in 1000ms 10:12:36.753 [info] {"source":"oban","duration":3322,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:37.160 [debug] Current batch of media processed. Will check again in 1000ms 10:12:38.161 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 456, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", "id" => "zOh645QHcRY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zOh645QHcRY", "playlist_index" => 12, "timestamp" => 1775563322, "title" => "Axios just got f**ked", "upload_date" => "20260407"} 10:12:38.161 [debug] QUERY OK source="sources" db=0.1ms idle=1260.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 (?)) [37] 10:12:38.161 [debug] QUERY OK source="sources" db=0.1ms idle=1260.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" = ?) [37] 10:12:38.164 [debug] QUERY OK source="media_items" db=2.1ms idle=1069.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 10:12:38.165 [debug] QUERY OK source="media_items" db=0.7ms idle=263.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "a26ed05e-e0e5-4b31-926d-730ecc0bece3", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 15:12:38Z], ~U[2026-04-30 15:12:38Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 10:12:38.165 [debug] QUERY OK source="sources" db=0.1ms idle=71.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" = ?) [37] 10:12:38.165 [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] 10:12:38.166 [debug] QUERY OK source="media_items" db=0.1ms 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 [2668267] 10:12:38.166 [debug] Current batch of media processed. Will check again in 1000ms 10:12:39.167 [debug] Current batch of media processed. Will check again in 1000ms 10:12:40.168 [debug] Current batch of media processed. Will check again in 1000ms 10:12:41.169 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 2644, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", "id" => "1o74a8a0rBw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1o74a8a0rBw", "playlist_index" => 13, "timestamp" => 1775307604, "title" => "Maintaining a codebase with AI | The Standup", "upload_date" => "20260404"} 10:12:41.169 [debug] QUERY OK source="sources" db=0.1ms idle=1268.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 (?)) [37] 10:12:41.169 [debug] QUERY OK source="sources" db=0.1ms idle=1268.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" = ?) [37] 10:12:41.172 [debug] QUERY OK source="media_items" db=2.1ms idle=1268.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 10:12:41.173 [debug] QUERY OK source="media_items" db=1.1ms idle=1075.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "0e28d0df-4b7d-4d69-b7fc-f9a197cc8ad3", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 15:12:41Z], ~U[2026-04-30 15:12:41Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 10:12:41.174 [debug] QUERY OK source="sources" db=0.3ms idle=75.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" = ?) [37] 10:12:41.174 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:41.174 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2647041] 10:12:41.174 [debug] Current batch of media processed. Will check again in 1000ms 10:12:41.537 [info] GET /sources/38/media/2302048/edit 10:12:41.537 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2302048", "source_id" => "38"} Pipelines: [:browser] 10:12:41.537 [debug] QUERY OK source="media_items" db=0.4ms idle=365.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" = ?) [2302048] 10:12:41.538 [debug] QUERY OK source="settings" db=0.0ms idle=364.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:41.538 [debug] QUERY OK source="settings" db=0.0ms idle=364.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:41.538 [debug] QUERY OK source="settings" db=0.0ms idle=364.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 [] 10:12:41.539 [info] Sent 200 in 2ms 10:12:42.175 [debug] Current batch of media processed. Will check again in 1000ms 10:12:43.176 [debug] Current batch of media processed. Will check again in 1000ms 10:12:44.177 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 435, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", "id" => "UwJp5xm1MNc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UwJp5xm1MNc", "playlist_index" => 14, "timestamp" => 1775217647, "title" => "Github has gone too far", "upload_date" => "20260403"} 10:12:44.178 [debug] QUERY OK source="sources" db=0.2ms idle=1276.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 (?)) [37] 10:12:44.178 [debug] QUERY OK source="sources" db=0.1ms idle=1277.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" = ?) [37] 10:12:44.180 [debug] QUERY OK source="media_items" db=2.2ms idle=1277.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 10:12:44.182 [debug] QUERY OK source="media_items" db=0.8ms idle=1080.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "1d8bb3f4-4969-488b-ac4e-65c37276dc6c", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 15:12:44Z], ~U[2026-04-30 15:12:44Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 10:12:44.182 [debug] QUERY OK source="sources" db=0.1ms idle=80.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" = ?) [37] 10:12:44.182 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 10:12:44.182 [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 [2634305] 10:12:44.183 [debug] Current batch of media processed. Will check again in 1000ms 10:12:45.184 [debug] Current batch of media processed. Will check again in 1000ms 10:12:46.185 [debug] Current batch of media processed. Will check again in 1000ms 10:12:46.455 [info] GET /sources/22/media/307944/edit 10:12:46.455 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "307944", "source_id" => "22"} Pipelines: [:browser] 10:12:46.456 [debug] QUERY OK source="media_items" db=0.1ms idle=554.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" = ?) [307944] 10:12:46.456 [debug] QUERY OK source="settings" db=0.1ms idle=555.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 [] 10:12:46.456 [debug] QUERY OK source="settings" db=0.0ms idle=555.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:46.457 [debug] QUERY OK source="settings" db=0.0ms idle=555.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:12:46.457 [info] Sent 200 in 2ms 10:12:47.186 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 719, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", "id" => "GdgRpiQRsis", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GdgRpiQRsis", "playlist_index" => 15, "timestamp" => 1775013611, "title" => "Claude Code got leaked", "upload_date" => "20260401"} 10:12:47.187 [debug] QUERY OK source="sources" db=0.1ms idle=730.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 (?)) [37] 10:12:47.187 [debug] QUERY OK source="sources" db=0.1ms idle=731.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" = ?) [37] 10:12:47.190 [debug] QUERY OK source="media_items" db=2.2ms idle=731.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 10:12:47.191 [debug] QUERY OK source="media_items" db=0.9ms idle=733.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "38206ace-736c-471d-9357-886b8a09452d", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 15:12:47Z], ~U[2026-04-30 15:12:47Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 10:12:47.191 [debug] QUERY OK source="sources" db=0.1ms idle=84.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" = ?) [37] 10:12:47.191 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:47.192 [debug] QUERY OK source="media_items" db=0.1ms 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 [2621036] 10:12:47.192 [debug] Current batch of media processed. Will check again in 1000ms 10:12:48.193 [debug] Current batch of media processed. Will check again in 1000ms 10:12:49.194 [debug] Current batch of media processed. Will check again in 1000ms 10:12:50.195 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 578, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", "id" => "ceH0IT-OBCw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ceH0IT-OBCw", "playlist_index" => 16, "timestamp" => 1774958441, "title" => "The End of JS", "upload_date" => "20260331"} 10:12:50.196 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1295.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 (?)) [37] 10:12:50.197 [debug] QUERY OK source="sources" db=0.1ms idle=1295.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" = ?) [37] 10:12:50.199 [debug] QUERY OK source="media_items" db=2.2ms idle=1296.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 10:12:50.200 [debug] QUERY OK source="media_items" db=0.6ms idle=1089.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "2baffa79-1b33-4e19-9007-5973f59503b8", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 15:12:50Z], ~U[2026-04-30 15:12:50Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 10:12:50.200 [debug] QUERY OK source="sources" db=0.1ms idle=88.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" = ?) [37] 10:12:50.200 [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] 10:12:50.201 [debug] QUERY OK source="media_items" db=0.1ms 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 [2613530] 10:12:50.201 [debug] Current batch of media processed. Will check again in 1000ms 10:12:51.202 [debug] Current batch of media processed. Will check again in 1000ms 10:12:51.456 [info] GET /sources/46/media/2323363/edit 10:12:51.456 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2323363", "source_id" => "46"} Pipelines: [:browser] 10:12:51.456 [debug] QUERY OK source="media_items" db=0.2ms idle=1256.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" = ?) [2323363] 10:12:51.457 [debug] QUERY OK source="settings" db=0.0ms idle=1256.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 [] 10:12:51.457 [debug] QUERY OK source="settings" db=0.1ms idle=1256.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 [] 10:12:51.457 [debug] QUERY OK source="settings" db=0.0ms idle=1256.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 [] 10:12:51.458 [info] Sent 200 in 2ms 10:12:52.203 [debug] Current batch of media processed. Will check again in 1000ms 10:12:53.204 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 685, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", "id" => "DAHZJAoZ3OM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "playlist_index" => 17, "timestamp" => 1774872076, "title" => "Invite to the Slop Party", "upload_date" => "20260330"} 10:12:53.204 [debug] QUERY OK source="sources" db=0.1ms idle=303.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 (?)) [37] 10:12:53.204 [debug] QUERY OK source="sources" db=0.1ms idle=303.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" = ?) [37] 10:12:53.207 [debug] QUERY OK source="media_items" db=2.2ms idle=303.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 10:12:53.209 [debug] QUERY OK source="media_items" db=1.5ms idle=306.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "03db1129-2cbf-48f3-85ad-2048a9dff6f1", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 15:12:53Z], ~U[2026-04-30 15:12:53Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 10:12:53.209 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:12:53.209 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.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] 10:12:53.209 [debug] QUERY OK source="media_items" db=0.1ms idle=4.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 [2605590] 10:12:53.209 [debug] Current batch of media processed. Will check again in 1000ms 10:12:54.211 [debug] Current batch of media processed. Will check again in 1000ms 10:12:55.212 [debug] Current batch of media processed. Will check again in 1000ms 10:12:56.213 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 491, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", "id" => "KPtIx5ZFSOY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "playlist_index" => 18, "timestamp" => 1774612826, "title" => "The Copilot Problem", "upload_date" => "20260327"} 10:12:56.214 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1312.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 (?)) [37] 10:12:56.214 [debug] QUERY OK source="sources" db=0.1ms idle=1313.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" = ?) [37] 10:12:56.216 [debug] QUERY OK source="media_items" db=2.2ms idle=1313.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 10:12:56.218 [debug] QUERY OK source="media_items" db=0.7ms idle=1097.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "407045bd-ce99-4f17-b6aa-a5fda54173e8", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 15:12:56Z], ~U[2026-04-30 15:12:56Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 10:12:56.218 [debug] QUERY OK source="sources" db=0.1ms idle=96.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" = ?) [37] 10:12:56.218 [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] 10:12:56.219 [debug] QUERY OK source="media_items" db=0.2ms 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 [2579932] 10:12:56.219 [debug] Current batch of media processed. Will check again in 1000ms 10:12:57.220 [debug] Current batch of media processed. Will check again in 1000ms 10:12:58.221 [debug] Current batch of media processed. Will check again in 1000ms 10:12:59.222 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 518, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", "id" => "mx3g7XoPVNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "playlist_index" => 19, "timestamp" => 1774526481, "title" => "A bad day to use python", "upload_date" => "20260326"} 10:12:59.222 [debug] QUERY OK source="sources" db=0.2ms idle=1321.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 (?)) [37] 10:12:59.222 [debug] QUERY OK source="sources" db=0.1ms idle=1321.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" = ?) [37] 10:12:59.225 [debug] QUERY OK source="media_items" db=2.1ms idle=1322.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 10:12:59.226 [debug] QUERY OK source="media_items" db=0.8ms idle=1099.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "a1c0f2b0-4d03-40bc-93f2-d21ddd2aa0b2", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 15:12:59Z], ~U[2026-04-30 15:12:59Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 10:12:59.226 [debug] QUERY OK source="sources" db=0.1ms idle=99.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" = ?) [37] 10:12:59.226 [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] 10:12:59.227 [debug] QUERY OK source="media_items" db=0.1ms 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 [2575352] 10:12:59.227 [debug] Current batch of media processed. Will check again in 1000ms 10:13:00.228 [debug] Current batch of media processed. Will check again in 1000ms 10:13:00.914 [info] {"source":"oban","duration":153,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:13:01.229 [debug] Current batch of media processed. Will check again in 1000ms 10:13:02.083 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUyeluBRhGPCW4rPe_UvBZQ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00_%(title)S.%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/1e/a7/1ea75aa3a2e81cf6ad6c81e9b16f39afaea759c711220ff983e1e373a03f50e6.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/0a/d3/0ad382ca4b3b7ce27cfb97347dffa5f88aee3162259f9788529cb45a7b68b5d1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 10:13:02.084 [debug] Gracefully stopping file follower 10:13:02.084 [debug] QUERY OK source="sources" db=0.2ms idle=1183.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 (?)) [37] 10:13:02.085 [debug] QUERY OK source="sources" db=0.1ms idle=1183.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" = ?) [37] 10:13:02.087 [debug] QUERY OK source="media_items" db=2.1ms idle=1184.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-28 13:01:09Z], 37] 10:13:02.089 [debug] QUERY OK source="media_items" db=1.8ms idle=1173.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "7a2c61ba-994d-4526-b5b4-b5695dd477f4", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, false, false, 37, [], 98, ~U[2026-04-28 13:01:09Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Want to order coffee over SSH?\nssh terminal.shop\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n### Sources\n* https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish \n\n* https://news.ycombinator.com/item?id=47881672&utm_source=trunk-io&utm_content=%2Fblog%2Fwhat-happens-if-a-merge-queue-builds-on-the-wrong-commit \n\n* https://x.com/ThePrimeagen/status/2048033949864051173/photo/1 \n\n* https://damrnelson.github.io/github-historical-uptime/?utm_source=chatgpt.com\n\n* https://trunk.io/blog/what-happens-if-a-merge-queue-builds-on-the-wrong-commit\n\n* https://www.githubstatus.com/\n\n* https://www.youtube.com/watch?v=8fcSviC7cRM", "Github are you joking?", "b13m-iuu4XU", 629, false, "https://www.youtube.com/watch?v=b13m-iuu4XU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042800_Github are you joking?.mp4", false, 37, ~U[2026-04-28 13:01:09Z]] 10:13:02.089 [debug] QUERY OK source="sources" db=0.1ms idle=961.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" = ?) [37] 10:13:02.092 [debug] QUERY OK source="media_items" db=2.0ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 12:01:05Z], 37] 10:13:02.093 [debug] QUERY OK source="media_items" db=0.7ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "e4d4fd79-8ab4-484f-af55-635373f9ae2e", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, false, false, 37, [], 97, ~U[2026-04-24 12:01:05Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale\n\n\nBig shoutout to Marcel Vos for the amazing RollerCoaster Tycoon footage — definitely check out his channel and give him a follow: https://www.youtube.com/c/marcelvos\n\n\n\n\n\n### Sources\n* https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rollercoaster-tycoon/", "RollerCoaster Tycoon Optimizations are Insane", "ZANFhJ9HYsM", 543, false, "https://www.youtube.com/watch?v=ZANFhJ9HYsM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042400_RollerCoaster Tycoon Optimizations are Insane.mp4", false, 37, ~U[2026-04-24 12:01:05Z]] 10:13:02.093 [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" = ?) [37] 10:13:02.095 [debug] QUERY OK source="media_items" db=1.9ms idle=4.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-21 19:33:17Z], 37] 10:13:02.096 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "a84fe804-12a4-4bbc-932f-32d9d241c918", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, false, false, 37, [], 98, ~U[2026-04-21 19:33:17Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "KERNEL builds crazy fast, open source infra for AI agents to access the internet. Trusted by Framer, Cash App, and 3000+ teams\n\nhttps://trm.sh/kernel\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n### Sources\n* https://wwd.com/footwear-news/shoe-industry-news/sneaker-allbirds-missteps-expansion-stores-acquisition-1238694185/\n* https://www.reddit.com/r/Allbirds/comments/1snsdnv/anyone_else_feel_stupid_or_betrayed_after/\n* https://x.com/mitchellh/status/2044529496217555333?s=20", "We are near peak hype", "rAREqdtUN48", 586, false, "https://www.youtube.com/watch?v=rAREqdtUN48", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e042100_We are near peak hype.mp4", false, 37, ~U[2026-04-21 19:33:17Z]] 10:13:02.097 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [37] 10:13:02.099 [debug] QUERY OK source="media_items" db=1.9ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-19 13:00:20Z], 37] 10:13:02.100 [debug] QUERY OK source="media_items" db=1.0ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "dfa35074-18f1-4794-849e-ddc6d96606fa", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-04-19 13:00:20Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Sentry: Catch, trace, and fix bugs across your entire stack. Use code: prime for $100 in free sentry credits → https://trm.sh/sentry\n\nAI, zero-days, and a whole lot of hot takes. The crew dives into the controversy around powerful new AI models and whether they’re making cybersecurity better or way more dangerous. From bug bounties to “anyone can hack now” fears, it’s a mix of serious debate, wild hypotheticals, and classic Standup chaos. \n\n00:00:00 - GeoHot Zero Day\n00:04:02 - CyberGym\n00:05:42 - The Claude Mythos Situation\n00:09:00 - Hacking Econ\n00:13:10 - 50 good programmers\n00:16:48 - AI Company Behaviour\n00:22:47 - Redbull and false claims\n00:25:41 - Opensource and reverse engineering\n00:29:20 - Model withholding and token costs\n00:33:24 - ARC-AGI Benchmarks\n00:37:51 - Vulnerability Research\n00:42:41 - Outro\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Mythos Situation | TheStandup", "6szQxMGX5JI", 2786, false, "https://www.youtube.com/watch?v=6szQxMGX5JI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041900_The Mythos Situation | TheStandup.mp4", false, 37, ~U[2026-04-19 13:00:20Z]] 10:13:02.100 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.102 [debug] QUERY OK source="media_items" db=1.9ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-17 12:17:00Z], 37] 10:13:02.119 [debug] QUERY OK source="media_items" db=16.2ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "e613c8c4-5094-47bc-a106-6136cd4dab45", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, false, false, 37, [], 98, ~U[2026-04-17 12:17:00Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount\n\n https://trm.sh/g2i\n\nAttending AIE Miami in April? Use code Prime50Off\n\n https://trm.sh/AIE\n\nSources\nhttps://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/ \n[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart%27s_law) \nhttps://x.com/claudeai/status/2042308627478773808/photo/1 \nhttps://x.com/AiDevCraft/status/2042604899079458978/photo/1 \nhttps://x.com/ZeffMax/status/2043729241326661972?s=20 \nhttps://fortune.com/2026/04/09/meta-killed-employee-ai-token-dashboard/ \nhttps://arcprize.org/leaderboard\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "It's all fake", "Oq5e_8zvick", 736, false, "https://www.youtube.com/watch?v=Oq5e_8zvick", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041700_It's all fake.mp4", false, 37, ~U[2026-04-17 12:17:00Z]] 10:13:02.120 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.122 [debug] QUERY OK source="media_items" db=2.2ms idle=20.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-15 12:16:06Z], 37] 10:13:02.127 [debug] QUERY OK source="media_items" db=4.3ms idle=22.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "df9786d7-36d2-4669-aa5e-9638a5d51dad", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, false, false, 37, [], 98, ~U[2026-04-15 12:16:06Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Linus Lays down the Law", "c6yN06GKRNQ", 785, false, "https://www.youtube.com/watch?v=c6yN06GKRNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041500_Linus Lays down the Law.mp4", false, 37, ~U[2026-04-15 12:16:06Z]] 10:13:02.128 [debug] QUERY OK source="sources" db=0.4ms idle=24.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" = ?) [37] 10:13:02.130 [debug] QUERY OK source="media_items" db=2.1ms idle=8.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-13 12:26:14Z], 37] 10:13:02.131 [debug] QUERY OK source="media_items" db=0.8ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "d39cce87-ba00-4c4e-97f7-4fda54bd9eef", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, false, false, 37, [], 98, ~U[2026-04-13 12:26:14Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSources\n\nhttps://blog.calif.io/p/mad-bugs-vim-vs-emacs-vs-claude\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Vim Has A 0-Day????", "zMpn9ICagdE", 611, false, "https://www.youtube.com/watch?v=zMpn9ICagdE", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041300_Vim Has A 0-Day????.mp4", false, 37, ~U[2026-04-13 12:26:14Z]] 10:13:02.131 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [37] 10:13:02.133 [debug] QUERY OK source="media_items" db=2.0ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-12 13:00:16Z], 37] 10:13:02.135 [debug] QUERY OK source="media_items" db=1.0ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "eea3b696-8f85-4d50-bc1b-3d68a2b3e824", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-12 13:00:16Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Download Trash’s App Receipts Here: https://apps.apple.com/us/app/got-receipts/id6760623464\n\nFull episode on Spotify: https://open.spotify.com/episode/4wAFjFkbSPwoTkL6vClhsT\nFull episode on Youtube: https://youtu.be/QD-USE_Vzvs\n\nThanks to this week's sponsor: Code Rabbit If you're tired of developers just replying with LGTM, then you NEED Code Rabbit. An actually useful application of AI where it can use your own rules, lints and more to provide instant feedback in your editor OR a review on Github. https://coderabbit.link/primeagen-vscode\n\nChocolate carrots, ghost hunting, and an app that might end marriages. We kick things off with Easter stories and a late-night haunted hotel adventure… then spiral into “Receipts” — a fully vibe-coded app designed to track every petty argument in your life. Yeah. It’s exactly what it sounds like.\n\nChapters\n00:00:00 - Lets get Started (Real intro)\n00:00:25 - Youtube Announcement\n00:01:18 - Trashs Explains His App\n00:03:32 - Merge Cop Ep 4 ends\n00:05:27 - Receipts App Demo\n00:17:34 - Feedback\n00:20:49 - Feature requests\n00:26:39 - Its a black mirror episode\n00:29:55 - The original Idea\n00:32:12 - Did this fix anything?\n00:36:01 - Wife challenge\n00:37:44 - Achievements and badges\n00:38:32 - App AI Dev Experience\n00:39:23 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Trash Made a Black Mirror App | The Standup", "CCBe1shjGOw", 2441, false, "https://www.youtube.com/watch?v=CCBe1shjGOw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041200_Trash Made a Black Mirror App | The Standup.mp4", false, 37, ~U[2026-04-12 13:00:16Z]] 10:13:02.135 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.138 [debug] QUERY OK source="media_items" db=2.0ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-11 15:23:30Z], 37] 10:13:02.139 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "cb7a3938-edee-483e-ba9c-91f1e57f2c54", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, false, false, 37, [], 98, ~U[2026-04-11 15:23:30Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "lyrics/performance: terminal (no ai)\nbeats/production: ken wheeler (no ai)\n\n\nFilmed at React Miami last year… and this year it’s a whole tech week! \n\nApril 20–24 \nAIE Miami: https://ai.engineer/miami (code: PRIME) \nReact Miami: https://reactmiami.com/\n \nWe'll see you there!! \n\nPowered by g2i.co/prime - if you’re building or hiring in AI, don’t miss this\n\n\n\n\n\nYacht Problem \n/yät ˈpräbləm/\n\n[Noun] \n A concern that seem might seem pressing \n to a junior engineer, but you know can wait until after IPO\n\nintern: \"There's an unfinished TODO in this PR!\"\nsenior: \"...that's a Yacht Problem\"\n\n\n\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I made a music video and I'm not sorry", "alK8hgHgxd4", 199, false, "https://www.youtube.com/watch?v=alK8hgHgxd4", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041100_I made a music video and I'm not sorry.mp4", false, 37, ~U[2026-04-11 15:23:30Z]] 10:13:02.139 [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" = ?) [37] 10:13:02.141 [debug] QUERY OK source="media_items" db=1.8ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 16:15:34Z], 37] 10:13:02.142 [debug] QUERY OK source="media_items" db=0.6ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "533df34c-b6ef-4a96-80aa-33dd6c2f657a", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, false, false, 37, [], 98, ~U[2026-04-10 16:15:34Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "No way this actually works", "L29q2LRiMRc", 418, false, "https://www.youtube.com/watch?v=L29q2LRiMRc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e041000_No way this actually works.mp4", false, 37, ~U[2026-04-10 16:15:34Z]] 10:13:02.143 [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" = ?) [37] 10:13:02.145 [debug] QUERY OK source="media_items" db=1.8ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-08 04:26:38Z], 37] 10:13:02.146 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "ccf43f29-1452-4ee7-957a-47c10eca785d", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, false, false, 37, [], 98, ~U[2026-04-08 04:26:38Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\n## Sources\nhttps://red.anthropic.com/2026/mythos-preview/\nhttps://x.com/LowLevelTweets/status/2041656610750144717\nhttps://x.com/bcherny/status/2041605852382351666\nhttps://x.com/astraiaintel/status/2041637651971727612\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Is Mythos too Dangerous?", "XRgGFQ0EgM0", 626, false, "https://www.youtube.com/watch?v=XRgGFQ0EgM0", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040800_Is Mythos too Dangerous?.mp4", false, 37, ~U[2026-04-08 04:26:38Z]] 10:13:02.146 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.148 [debug] QUERY OK source="media_items" db=1.8ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 12:02:02Z], 37] 10:13:02.149 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "ca1cdbe0-a944-471d-9e73-5b7a5bbd7793", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, false, false, 37, [], 98, ~U[2026-04-07 12:02:02Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nSource: \nhttps://github.com/axios/axios/issues/10636#issuecomment-4182134203\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc1069-targets-cryptocurrency-ai-social-engineering\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Axios just got f**ked", "zOh645QHcRY", 456, false, "https://www.youtube.com/watch?v=zOh645QHcRY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040700_Axios just got f**ked.mp4", false, 37, ~U[2026-04-07 12:02:02Z]] 10:13:02.149 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms 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" = ?) [37] 10:13:02.152 [debug] QUERY OK source="media_items" db=1.9ms idle=4.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-04 13:00:04Z], 37] 10:13:02.153 [debug] QUERY OK source="media_items" db=0.9ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "307da7ea-dc6e-469c-b05a-1067c6a2843b", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, false, false, 37, [], 98, ~U[2026-04-04 13:00:04Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Ship with confidence. Try Sentry: https://trm.sh/sentry\n\nFull episode on Spotify: https://open.spotify.com/episode/5JF055lquoK8LHjYuz3eJI\n\nThis week on The Standup, we sit down with the team behind Cloudflare’s “Vinext” experiment an attempt to bring the Next.js API surface onto a completely different runtime. What starts as a simple “why does this exist?” quickly turns into a deep dive on AI-driven development, open source in the age of agents, and what happens when an intern is told to “just build Next.js” .\n\nDane Knecht, Steve Faulkner, and Dillon Mulroy walk through how the project went from a half-finished intern prototype to a full-blown AI-assisted experiment complete with bots reviewing PRs, triaging issues, and even maintaining parity with the Next.js repo itself. Along the way, we get into the realities of maintaining a “not-a-fork-but-kind-of-a-fork,” why developers keep depending on undocumented behavior anyway, and how AI both creates and fixes its own messes .\n\nChapters\n00:00:00 - Intro\n00:01:41 - NextJs\n00:03:28 - Sentry\n00:04:27 - Interns and AI bots\n00:06:42 - Opensource in the AI world\n00:07:46 - Fork or not\n00:10:38 - Surface Area\n00:14:43 - Post Experiment\n00:15:53 - Mitigating Slop\n00:18:10 - Agentic Development\n00:27:37 - Reception\n00:31:13 - What is Vite?\n00:36:49 - Sentiment\n00:38:47 - Managing AI\n00:43:32 - Outro\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Maintaining a codebase with AI | The Standup", "1o74a8a0rBw", 2644, false, "https://www.youtube.com/watch?v=1o74a8a0rBw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040400_Maintaining a codebase with AI | The Standup.mp4", false, 37, ~U[2026-04-04 13:00:04Z]] 10:13:02.153 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.155 [debug] QUERY OK source="media_items" db=1.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-03 12:00:47Z], 37] 10:13:02.156 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "3d2d7be4-8e76-471d-9c81-582608c7d1c0", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, false, false, 37, [], 98, ~U[2026-04-03 12:00:47Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources\nhttps://github.com/search?q=%22Quickly+spin+up+Copilot+coding+agent+tasks+from+anywhere+on+your+macOS+or+Windows+machine+with+Raycast%22&type=pullrequests\nhttps://www.neowin.net/news/microsoft-copilot-is-now-injecting-ads-into-pull-requests-on-github-gitlab/\nhttps://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Github has gone too far", "UwJp5xm1MNc", 435, false, "https://www.youtube.com/watch?v=UwJp5xm1MNc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040300_Github has gone too far.mp4", false, 37, ~U[2026-04-03 12:00:47Z]] 10:13:02.157 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.159 [debug] QUERY OK source="media_items" db=2.0ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-01 03:20:11Z], 37] 10:13:02.160 [debug] QUERY OK source="media_items" db=0.9ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "8398e7d8-c7d7-441d-bd16-6f2cfa099bab", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, false, false, 37, [], 98, ~U[2026-04-01 03:20:11Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Having trouble finding the right developer for your team? Get a 7-day free trial + $1,500 off with The Prime’s discount. https://trm.sh/g2i\nAttending AIE Miami in April? Use code Prime50Off - https://trm.sh/AIE\n\n### Sources\n- https://x.com/wesbos/status/2038961138130432382\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#buddy---a-tamagotchi-inside-your-terminal\n- https://x.com/paoloanzn/status/2038944622039413224\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#the-system-prompt-architecture\n- https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code\n- https://github.com/Kuberwastaken/claude-code?tab=readme-ov-file#undercover-mode---do-not-blow-your-cover\n- https://x.com/Yuchenj_UW/status/2038996920845430815\n- https://github.com/github/dmca/blob/master/2025/03/2025-03-10-anthropic.md\n- https://x.com/GergelyOrosz/status/2038985760175505491\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Claude Code got leaked", "GdgRpiQRsis", 719, false, "https://www.youtube.com/watch?v=GdgRpiQRsis", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e040100_Claude Code got leaked.mp4", false, 37, ~U[2026-04-01 03:20:11Z]] 10:13:02.161 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.163 [debug] QUERY OK source="media_items" db=2.1ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-31 12:00:41Z], 37] 10:13:02.164 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "5961f22f-fd36-4960-9a0d-dfeb76a62dd6", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, false, false, 37, [], 98, ~U[2026-03-31 12:00:41Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "Birth and death: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript\n\nbecome an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The End of JS", "ceH0IT-OBCw", 578, false, "https://www.youtube.com/watch?v=ceH0IT-OBCw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033100_The End of JS.mp4", false, 37, ~U[2026-03-31 12:00:41Z]] 10:13:02.165 [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" = ?) [37] 10:13:02.167 [debug] QUERY OK source="media_items" db=2.0ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-30 12:01:16Z], 37] 10:13:02.170 [debug] QUERY OK source="media_items" db=2.4ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "1cd83675-fa3e-4893-a1ca-0c311b16b4d7", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, false, false, 37, [], 97, ~U[2026-03-30 12:01:16Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "### Sources\n\nhttps://nesbitt.io/2026/03/21/how-to-attract-ai-bots-to-your-open-source-project.html \n\nhttps://mastodon.social/@andrewnez\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Invite to the Slop Party", "DAHZJAoZ3OM", 685, false, "https://www.youtube.com/watch?v=DAHZJAoZ3OM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e033000_Invite to the Slop Party.mp4", false, 37, ~U[2026-03-30 12:01:16Z]] 10:13:02.170 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.172 [debug] QUERY OK source="media_items" db=2.0ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-27 12:00:26Z], 37] 10:13:02.173 [debug] QUERY OK source="media_items" db=0.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "511f435f-3bcb-46b7-9e0e-081087b6678f", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, false, false, 37, [], 98, ~U[2026-03-27 12:00:26Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nYou want coffee? Real coffee? real developer coffee? ssh terminal.shop\n\n### Sources\nhttps://x.com/IceSolst/status/2008944515747311929 \nhttps://www.windowslatest.com/2025/11/16/new-windows-11-copilot-ad-accidentally-shows-ai-fumbling-a-basic-text-size-setting/ \nhttps://blogs.microsoft.com/blog/2026/02/20/asha-sharma-named-evp-and-ceo-microsoft-gaming/\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "The Copilot Problem", "KPtIx5ZFSOY", 491, false, "https://www.youtube.com/watch?v=KPtIx5ZFSOY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032700_The Copilot Problem.mp4", false, 37, ~U[2026-03-27 12:00:26Z]] 10:13:02.174 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.176 [debug] QUERY OK source="media_items" db=2.0ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 12:01:21Z], 37] 10:13:02.177 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "c3df5a55-5cd8-4911-9524-a1b6de363468", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, false, false, 37, [], 98, ~U[2026-03-26 12:01:21Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "become an engineer, not just a slop cannon. Check out https://boot.dev/prime! And get 25% off. \n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Sources in order of appearance \nhttps://xkcd.com/927/ \nhttps://x.com/karpathy/status/2036487306585268612 \nhttps://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/ \nhttps://github.com/BerriAI/litellm/issues/24512\nhttps://techcrunch.com/2026/03/22/delve-accused-of-misleading-customers-with-fake-compliance/ \nhttps://x.com/derekelewis/status/2036465680464162874\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "A bad day to use python", "mx3g7XoPVNQ", 518, false, "https://www.youtube.com/watch?v=mx3g7XoPVNQ", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032600_A bad day to use python.mp4", false, 37, ~U[2026-03-26 12:01:21Z]] 10:13:02.178 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 10:13:02.180 [debug] QUERY OK source="media_items" db=2.0ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 12:15:57Z], 37] 10:13:02.181 [debug] QUERY OK source="media_items" db=0.6ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "1f810b41-43a2-45b6-9dde-345fb7b89769", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, false, false, 37, [], 98, ~U[2026-03-24 12:15:57Z], ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "This Is Crazy", "6godSEVvcmU", 578, false, "https://www.youtube.com/watch?v=6godSEVvcmU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e032400_This Is Crazy.mp4", false, 37, ~U[2026-03-24 12:15:57Z]] 10:13:02.181 [debug] QUERY OK source="sources" db=0.2ms idle=4.7ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z], 37] 10:13:02.183 [debug] QUERY OK source="media_items" db=2.1ms idle=4.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 ((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")))) [37] 10:13:02.201 [debug] QUERY OK source="media_items" db=2.2ms idle=3.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")))) [37] 10:13:02.202 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 10:13:02.203 [debug] QUERY OK source="tasks" db=0.3ms idle=3.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [300741, 37, ~U[2026-04-30 15:13:02Z], ~U[2026-04-30 15:13:02Z]] 10:13:02.203 [info] {"args":{"id":37},"id":300653,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":59154018,"event":"job:stop","queue_time":800777,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:13:06.757 [info] {"source":"oban","duration":3460,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:28.478 [info] GET /sources/45/media/1949827/force_download 10:13:28.478 [debug] QUERY OK source="settings" db=0.2ms idle=577.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 [] 10:13:28.479 [debug] QUERY OK source="settings" db=0.0ms idle=577.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:13:28.479 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:13:28.479 [error] #PID<0.191167.0> running PinchflatWeb.Endpoint (connection #PID<0.191166.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/1949827/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/45/media/1949827/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1949827/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191167.0>, params: %{}, path_info: ["sources", "45", "media", "1949827", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/1949827/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrOpGT6B8u-3AASJzC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1949827/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/1949827/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1949827/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191167.0>, params: %{}, path_info: ["sources", "45", "media", "1949827", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:13:29.406 [info] GET /sources/45/media/1854320/force_download 10:13:29.407 [debug] QUERY OK source="settings" db=0.1ms idle=1505.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:13:29.407 [debug] QUERY OK source="settings" db=0.0ms idle=1241.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:13:29.407 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:13:29.407 [error] #PID<0.191168.0> running PinchflatWeb.Endpoint (connection #PID<0.191166.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/45/media/1854320/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/45/media/1854320/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1854320/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191168.0>, params: %{}, path_info: ["sources", "45", "media", "1854320", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/45/media/1854320/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrOsjoKdvtftMASJ0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1854320/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/45/media/1854320/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/45/media/1854320/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191168.0>, params: %{}, path_info: ["sources", "45", "media", "1854320", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 10:13:34.407 [info] GET /sources/22/media/307943/force_download 10:13:34.407 [debug] QUERY OK source="settings" db=0.2ms idle=1506.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 [] 10:13:34.407 [debug] QUERY OK source="settings" db=0.1ms idle=1235.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:13:34.407 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:13:34.408 [error] #PID<0.191169.0> running PinchflatWeb.Endpoint (connection #PID<0.191166.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/22/media/307943/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/22/media/307943/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307943/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191169.0>, params: %{}, path_info: ["sources", "22", "media", "307943", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/22/media/307943/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrO_L0mnhEcSsASJ1C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307943/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/22/media/307943/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191166.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/22/media/307943/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52704}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191169.0>, params: %{}, path_info: ["sources", "22", "media", "307943", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https (truncated) 10:13:36.761 [info] {"source":"oban","duration":3611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:40.877 [info] GET /sources/52/media/1301392 10:13:40.877 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1301392", "prevent_download" => "true", "source_id" => "52"} Pipelines: [:browser] 10:13:40.877 [debug] QUERY OK source="media_items" db=0.1ms idle=975.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" = ?) [1301392] 10:13:40.878 [debug] QUERY OK source="sources" db=0.2ms idle=976.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" = ?) [52] 10:13:40.882 [debug] QUERY OK source="tasks" db=4.6ms idle=976.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" [1301392] 10:13:40.899 [debug] QUERY OK source="oban_jobs" db=11.6ms idle=986.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [277930, 277991, 278025, 278039, 278053, 278066, 278079, 278215, 278237, 278250, 278278, 278299, 278313, 278326, 278339, 278353, 278366, 278384, 278399, 278412, 278425, 278439, 278452, 278468, 278484, 278497, 278510, 278524, 278537, 278557, 278572, 278586, 278599, 278612, 278626, 278642, 278657, 278671, 278684, 278697, 278711, 278727, 278743, 278757, 278770, 278783, 278797, 278816, 278831, 278845, ...] 10:13:40.919 [debug] QUERY OK source="settings" db=0.1ms idle=736.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:13:40.919 [debug] QUERY OK source="settings" db=0.0ms idle=42.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 [] 10:13:40.920 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:13:40.920 [debug] QUERY OK source="media_profiles" db=0.0ms idle=38.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] 10:13:41.005 [info] Sent 200 in 128ms 10:13:44.182 [info] GET /media/f99e10b7-7b2f-4b83-952a-2e26bb45dd52/stream 10:13:44.183 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "f99e10b7-7b2f-4b83-952a-2e26bb45dd52"} Pipelines: [:maybe_basic_auth] 10:13:44.184 [debug] QUERY OK source="media_items" db=0.8ms idle=1282.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" = ?) ["f99e10b7-7b2f-4b83-952a-2e26bb45dd52"] 10:13:44.184 [debug] Invalid range request for media item: f99e10b7-7b2f-4b83-952a-2e26bb45dd52 - serving full file 10:13:44.184 [info] Sent 200 in 1ms 10:13:56.348 [info] GET /sources/45/media/1949827 10:13:56.348 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1949827", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 10:13:56.348 [debug] QUERY OK source="media_items" db=0.1ms idle=1447.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" = ?) [1949827] 10:13:56.349 [debug] QUERY OK source="tasks" db=0.1ms idle=1447.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" [1949827] 10:13:56.349 [debug] QUERY OK source="sources" db=0.2ms idle=1143.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" = ?) [45] 10:13:56.349 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:13:56.349 [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 [] 10:13:56.350 [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 [] 10:13:56.350 [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] 10:13:56.351 [info] Sent 200 in 3ms 10:14:00.220 [info] {"args":{"id":1227399},"id":279584,"meta":{},"system_time":1777562040220390996,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:14:00.220 [debug] QUERY OK source="media_items" db=0.2ms idle=319.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" = ?) [1227399] 10:14:00.220 [info] User scripts lifecyle file either not present or is empty. Skipping. 10:14:00.221 [debug] QUERY OK source="sources" db=0.7ms idle=319.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" = ?) [32] 10:14:00.222 [debug] QUERY OK source="media_profiles" db=0.3ms idle=320.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] 10:14:00.222 [debug] QUERY OK source="media_items" db=0.1ms idle=8.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 [1227399] 10:14:00.224 [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" = ?) [1227399] 10:14:00.224 [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] 10:14:00.224 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:14:00.224 [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 [] 10:14:00.224 [debug] Running yt-dlp command for action: get_downloadable_status 10:14:00.225 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:14:00.225 [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 [] 10:14:00.225 [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 [] 10:14:00.225 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eNniaqgss2A --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/72/82/7282eece17e63f34525de37a15706ee00042023628f07c0bac1599a04db3aa8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:14:00.915 [info] {"source":"oban","duration":170,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:14:01.218 [info] GET /sources/45/media/1854320 10:14:01.218 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1854320", "prevent_download" => "true", "source_id" => "45"} Pipelines: [:browser] 10:14:01.218 [debug] QUERY OK source="media_items" db=0.1ms idle=993.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" = ?) [1854320] 10:14:01.219 [debug] QUERY OK source="tasks" db=0.1ms idle=993.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" [1854320] 10:14:01.219 [debug] QUERY OK source="sources" db=0.2ms idle=993.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" = ?) [45] 10:14:01.219 [debug] QUERY OK source="settings" db=0.0ms idle=304.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:14:01.219 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:14:01.220 [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 [] 10:14:01.220 [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] 10:14:01.221 [info] Sent 200 in 3ms 10:14:02.011 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eNniaqgss2A --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/72/82/7282eece17e63f34525de37a15706ee00042023628f07c0bac1599a04db3aa8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] eNniaqgss2A: Join this channel to get access to members-only content like this video, and other exclusive perks. 10:14:02.012 [error] yt-dlp download error for media item #1227399: "ERROR: [youtube] eNniaqgss2A: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 10:14:02.012 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1227399},"id":279584,"meta":{},"state":"discard","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1791783,"event":"job:exception","queue_time":148460,"attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 10:14:06.766 [info] {"source":"oban","duration":3816,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:36.771 [info] {"source":"oban","duration":4123,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:52.242 [info] GET /media/5eb09747-f6f9-4376-b48e-002dc8b6e358/stream 10:14:52.242 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "5eb09747-f6f9-4376-b48e-002dc8b6e358"} Pipelines: [:maybe_basic_auth] 10:14:52.249 [debug] QUERY OK source="media_items" db=6.9ms idle=956.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" = ?) ["5eb09747-f6f9-4376-b48e-002dc8b6e358"] 10:14:52.250 [debug] Invalid range request for media item: 5eb09747-f6f9-4376-b48e-002dc8b6e358 - serving full file 10:14:52.250 [info] Sent 200 in 7ms 10:15:00.383 [info] GET /sources/43/sync_files_on_disk 10:15:00.383 [debug] QUERY OK source="settings" db=0.1ms idle=825.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:15:00.384 [debug] QUERY OK source="settings" db=0.1ms idle=482.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:15:00.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:15:00.384 [error] #PID<0.191199.0> running PinchflatWeb.Endpoint (connection #PID<0.191198.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/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/43/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191199.0>, params: %{}, path_info: ["sources", "43", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrT_eOAEm-_2cAUekB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/sync_files_on_disk", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191199.0>, params: %{}, path_info: ["sources", "43", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/sync_files_on_disk", resp_body (truncated) 10:15:00.916 [info] {"source":"oban","duration":381,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 10:15:03.438 [info] GET /sources/9/force_index 10:15:03.439 [debug] QUERY OK source="settings" db=0.1ms idle=1537.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:15:03.439 [debug] QUERY OK source="settings" db=0.0ms idle=1537.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:15:03.439 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:15:03.439 [error] #PID<0.191200.0> running PinchflatWeb.Endpoint (connection #PID<0.191198.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/9/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/9/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191200.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKsrUK2oCB5DfBgASKCC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/9/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.191198.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/9/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 40826}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.116", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.191200.0>, params: %{}, path_info: ["sources", "9", "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://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.116"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/9/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cach (truncated) 10:15:06.775 [info] {"source":"oban","duration":3727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0}